Skip to main content

Full text of "Clubline (November 1986)"

VOL 5-2 NOVEMBER 1986 $2.50 











R WOLF 




PAGE 14 



SIX SUPER PROGRAMS 




liii 






fin 



4±i 



MORE 
BIGGEST 
PROGRAM 
PAGE 4 



M WHO T S-WHO" 



CLUBLINE-99 Magazine 

EDITOR in CHIEF 
Malcolm W. Johnson 

ASSOICIATE EDITOR & RESEARCH 
Stephen W. Johnson 

RESEARCH & LAYOUT 
Andrew Johnson B.A. 

FAST LANE EDITOR 
Iain M. Johnson 

EDITORIAL ASSISTANT 
Jean Johnson 

BASIC EDITOR 

Tor Hansen 

ADVERTISING MANAGER. 
Mike Towers 

ILLUSTRATIONS 
Tom Phalen 

COMPUTER GRAPHICS 

Stephen W. Johnson 



CLUBLINE-99 Magazine is published 12 times 
a year by Wentworth Supplies. Any and all 
written communication should be addressed 
to: 

Clubline-99 

P.O. Box 1005, Station A 

Hamilton, Ontario 

L8N 3R1 
Articles become the exclusive property of 
Clubline-99 . Opinions expressed by the 
authors are not necessarily those of 
Clubline-99 . All articles addressed to 
Clubline-99 will be treated unconditionaly 
assigned for publication. Clubline-99 
assumes no liabilituy for errors in 
articles , programs , or advertisements . 
Advertisements contained herein in no way 
constitutes endorsement of the product or 
products by Clubline-99, unless stated. 



CONTENTS 



99' er GRAM 

by Jean Johnson -.«..., 
AIRWOLF 

by Iain Johnson „,«.,«,, 
BOOK AUCTION 

by Tom Arnold ........ 

c-'basic 

by Davici Storey „ .. „ . ,. „ 
CHECK IT OUT 

by Ron rlar 1 ss&n 

CLUB PAGE CHANNEL 9 

by Tor Hansen 
CQPOLA CORNER 

by Ul <>,:k y n e A n d e r s o i -) » 
DEBUGGING 



h h it n 



MHUUttttUU 



DON* T TAKE IT APART 

b y R i c k L i 1 1 e y , ., . „ .. , , .. , , , 

FAST LANE 

edited by lain Johnson , , * * , 
GRAVITY BALL 

\;yy Step lien Johnson , fi . ■ . , - « « 
HOW TO USE A COMPUTER 

by Fran!-* Put 1 e-r ,«.,,. ■. 

OPTION 3 

by V. C MacAr thur 

PAINT 

by Don Cook 

PLAY WITH SPARKY 

by Harry Sparks .. .. ....... .. - ■.*•■■ 

SUPER GRAPHICS MODE 

by Iain Johnson ..„.,-... , .. , .. 
THE BIG PROGRAM 

b v S t e p h e n W « J' o h ;■ i s o n ,..-,.„. 
THE INCREDIBLE SHRINKING 

by Tom Arnol d 
UH-OH 

tav Pon Nanssen „ .. ,..,., * „»,..«.. . 
WHERE ARE THEY NOW 

by Tor Hansen 
X-STREAM 

bv Tor Hansen .. * » » .. 



VOL 5-2 NOVEMBER 1986 



H II » II 



. Page • 


3 


Page X 


="!■ 


Page 2 


e 


Page iZ- 


n 


, ., Page 


€::.n 


Page ^.: 


«■■.(!■. 


Page S 


O 


r^ 1. 


"fr 5 


p ag^ - 2 


*E,. 


Page :1 


O 


Page 1 


*7> 


.. , Page 


■»"•■> 


Page :S 


& 


« . Page 





, , Page 


"";;?■ 


Page 1 


j^-*' 


.. - Page 


,,:,', 


PRG 




Page 2 


■i — ? 


Pag? .;•■ 


■ -;;r 


.. ., Page 


s 


„ „ Page 





NEXT MONTH 

BUILD YOUR OWN 32K RAM 



Page £ 




EDITED £» V 
Tor Hansen 



BOB 



EVEL UNCUAGE ENCOUNTERS 






6y hrank Butter 



EEN' 

.. cU Di2f L*-^ A T ::» &.< ; 
NTER" 
22* ^RI'vIT ''LIST 4 vt 



- PPI 



After i run these pr^or^m-, i Take ai; the -;v 
from all the ut i ! * '" )rv 3 l . one! comfe;:^ t^e data 0- or 
program I wrote that bandies a! I the ; nf pr<mat icn an 
formats it for print out* 

Sut first, a iook at the Hydro utiiii.tv. 
Before I Gave any o* *he oroqramc ' wr:^e, 
first run that proqrgi?, and, ac you may have not'c: 
from previous samples, either the f i r~ i* ~r record r ?" 
of the program rontai~s ^he -<3rr,e 1 wa^" 4- ~ *-i-°- f :r "" 
disk filename, ts ■ z ^ar saver* rh>. wr ? t-#»r f^o.r ''■.:' 
many program f I !es! 

In a quick summary, ! ?ne "3C ■*-■■; ! >e 7"C oov 

the screen disolay o:*ic. ;"■ ""he ~er2 35 we < : as " 

program iog'7 ^e ^orrnar ^"^ nnrr.h^rr- ,'-~r- .^:^r 

Li nes 75? +0 "2" r 



5umbe f "s 



•j • s v ' a v > 



After "^he prcQ^a"^ ' zc\-~; '~3s 6 ^eou^^c . -en*""' 
directed accord *ng -? *h« v. a _*e ot ' r J , 
information Is sen + *;; _u e ^j^u"" :sv : :e vher 
program then ends afte- tne d 1 -!---- ?'j + . 



As tnese a^e ^irU s ! vr> ! 
do what vou w'l' w:*-^ -^her, * i 



- ee' 



17C rr r*=«i« THEN ISO 

:B0 IF F$-'-"2" THEN 750 

ViO *RINT ---—■ ONTARIO MY 

DRQ ■—•-- 

200 PP INT 

210 FPINT '^ATE ; t;A^H; ; il r? 

TAB-: 12: ; "P**.d"; "AB- 13;; "Kwh" 

: TAfc? ?^J ; "CUE"" 

:_: ~r2N~ ~A£,^ ; J, D.ay3 l \' TAB^ 

: 2 " . : '~i?\^" ; ~AB ! 13 5 "us^r* 

220 FQF X=l TQ 4 

:A* REM DATE. = . . , «Q* 

...... w. - w*;^""> -■ - 

_'C^." -EM shading,,-*? 
272 REM Kwh, , , , , , =K. 

22 ]-■ "^EAD 2$ 

117 -EAD ~ 
220 READ ^: 

:.4C M : r$^2' ( T HEN 940 
:5i' ; --INT Q$- T AS : 7) ;t;TABai 
tt : ;aD 1 *"-iS r r AB* 22); C 



( I am Far ! ud : ~z ^ne ; 
th i s segment of th ; s co ! 'jmo , 
fairly easy 4 o * i ' ow -= r d 

ingenuity f^cm the ; "er:\?r^i',-> 

in lieu ot sayinc start 



tvH- ""[ 



^ o 3 r 3 ^ t i e t(?" ^ c r> t r* - ^ »- 
^"he cronrams are *"d?^ r 



Is there anyone cut there up to it? £d . 5 



100 2AI L CLEAR 

110 DISPLAY AT("6 i 8>:"DSKi„HY 

DRD' 1 

1 On DJQPi 4^/ ATf'7 . P> ; " 



- !{-; I" j- *dtr C -^ T t^ 



f;avs~TE 



Page S 



4 .-' rl>- TKWH/TE 

- ' ' ■ 2\* r ■ !-'2-^; f -Or s 5 :7C 

4:;<: ! KE:M vst ANNUAL Kwh^AKWA 

460 AKUA=KD**366 

470 REM EST„ Yearly Cost"YC 

480 REM wst. Daily cost^DC 

490 DC=YC/365 

500 DC- 1 NT < DC* 1 000+ . 5 ) / 1 000 

510 YA=YA+C 

520 YB-YA/TE n 

Oontanued on page 



THE 
BIGGEST PROGRAM IN THE WORLD 



by Stephen W. Johnson 



!f you have sent In a program and have not seen 
it published yet, don ! t panic! We have a back-log of 
programs which will all eventually be oubllshed. 

Here are another two excellent short programs. 
But first, if you remember last month we added a line 
to the Score Card program to return the colours and 
characters back to normal. Well there is one other 
thing that should also be returned to normal, the 
sprite magnification. Simply add a ca ! 1 magnify and a 
delsprite at the end of that line so it looks like 
this. 

175 CALL CHARSET :: FOR L=0 
TO 14 :: CALL COLOR(L, 2 , 1 ) : : 
NEXT L :: CALL DELSPRITE(AL 
L): : CALL MAGNIFY(l) 

Also, do not forget to change line 350 to load 
the new programs. Change it from: 

350 X=INT(RND*3+1) 
to: 

350 X=INT(RND*5+1) 

GAME/5 

Here is a fun little game that everyone should 
recognize, Frogger. In this version you are some bits 
of information that have to get to the CPU. But watch 
out, you have to avoid the Power Surges and then make 
your way across the chips. Once you successfully 
cross you Ml continue onto the next board. 

Many people have given up trying to write Frogger 
in Extended because they can not get their man to move 
with the Logs. There rea II y is a simple solution over 
this problem, so simple that most people over look it. 
The speed of the logs in each row are put into an 
array. Then to find out what horizontal speed the man 
should have, you find what row he is in and then look 
in the corresponding element of the array. 

Although the man moves with the chips (logs) in 
this version, he will slowly slide off them. This can 
be easily changed by multiplying the speed by 1.8 in 
line 400. Then the line would like this: 

400 IF L<5 TKIHN XSFl"L) = S?D*l 
• 8 

You will also notice that it only has one game 
loop for both the top and the bottom of the screen. A 
clever little memory saver. 

For all those experimenters out there, you might 
want to modify the program so that it uses 
magnification #4. This will allow you to make the 
logs longer* They are a bit short with magnification 
#3„ 



if you want to play this game without a disk 
drive simply rem all the lines that have something to 
do with one. They are 15C to 170 and 540 to 570. You 

will also havo to ac'd a i ; no -; ~ yiv^ you seine Ten, 

145 men=10 

100 REM GAME BOARD #5 

110 REM BIT CROSS 

120 REM BY STEPHEN U. JOHNSON 

130 REM VOL 5-2 NOV 1386 

140 REM FOR THE BIGGEST PROG 

RAM IN THE WORLD 

150 OPEN # 1 :" DSK 1, SCORE /REC" 

160 INPUT #1:HSE, SCORE, MEN, N 

AME$ 

170 CLOSE #1 

180 DIM XSPC12) 

190 CALL CHAR(120,"92AA92004 

AAA4A00"&RPT* ( H H , 48) ) f YOUR 

MAN 
200 CALL CHAR*"I24,"G3S8B8834 
4221188442211884422118844221 
18844444444") ! MIDDLE OF SCRE 
EN 

210 CALL CHAR(12B,"00006D49F 
F88DADADADBFFFF496D00000000B 
624FE22AEA2BAA2FEFE24ES00OO" 
) f CHIP TMS 

220 CALL CHARU32,* € o0006D49F 
F8BBB8AEA88FFFF496D00000000B 
&24FEBABAAAAA22FEFE24B60000 i! 
) ! CHIP SWJ 

230 CALL CHAR(136 f RPT$«."55AA 
\16>) IBQTTOM THING 
240 CALL CHAR (140, PPT* *'"55AA 
\ 16) >! BOTTOM THINS 2 
250 CALL CLEAR i: RANDOMIZE 



1*60 FOR L=2 TO 11 



?AL 



4, 



L0R(L,2 f 10):: NEXT i. 
270 CALL COLOR (1, 2 , 10, 
3>: : CALL SCREEN (7- 
2G0 CALL MAGN I FY :' 2 ' 
230 HRD=HRD+1 

300 FOR L=l TO 6 :: READ X,Y 
:s CALL HCHARc;X,l,Y,32}t! N 
EXT L 

310 DATA 1,125,2,126,11,124, 
12,126,21, 124,22,125 
320 CALL HCHARC13, 1,121,256) 
330 FOR L=l TO 8 



'age 4 



340 SPD=INT<RND*3+7*:: IF L 

5 THEN SPD=SPD-3 

350 IF L/2=INia/2)" r riEN SPD= 

-SPD 

360 FOR L2-1 TO 3 

370 DFN=128+INTfPND*2)*4 :: 

IF U-5 THEN CL=2 :s IMC=1 EL 

SE DFN=DFN+9 !- a=l£ :s INC 

= 1 / 

380 CALL SPPITE(#L*3+L2 f DFN f 

CL f L*16+INC , L2*85, 0, SPD> 

390 NEXT L2 

400 IF L<5 THEN XSP<L)=3PD 

410 NEXT L 

420 REM START OF GAME 

430 TRY=TRV+1 :: 60SUB 590 : 

: CALL SPFITEC#l f 120,16, 169, 

128) 

440 CALL JOYSm,X,Yj:: CALL 
M0TIQNf#l f -Y*l3,XSPaNTf<YP 
+3>/ib)J+X*13) 

450 CALL NO FIQN* #1,0,0;;: CA 
LL C0INCCALL,O:". CALL POSIT 
IOhK#l,YP,XP): : CALL MOTION ( 
#1,0, XSPaNTn'YP+3>/16r^s: 
IF YP<'77 THEN C--C-1 :: IF Y 
P<13 THEN 500 
460 IF C=0 THEN 440 
470 MEN=MEN-1 
480 IF MENX* THEN 430 
490 DISPLAY AT«.5,3;BEEP: "SOP 
RY, YOU HAVE LOST ALL "s TAB* 9 
);"YOUR MEN' ( < ,M 
500 CALL DELSPRITE<ALL*:: GO 
SUB 590 :: DISPLAY AT<8. 1>BE 
EP:" HOLD ON FOP THE SCOPE C 
ARD" 

510 IF MEN^O THEN SCP=110-TF 
YtiO :: IF SCR. iO THEN SCR=t 


520 SCORE=SCORE+SCR 
530 C ALL SOUND «-l, 110, 30 ) 
540 OPEN #1:"DSK1. SCORE/PEC" 
550 PRINT #i:HSE53COPE:MEN:N 
AME* 

56c Cl~lV£c - 

570 RUN "DSM.SC/ LARD" 
580 STOP 

590 DISPLAY AT<24 ? 1 >BEEP: "ME 
N " ; MEN ; " SC ORE " ; SCORE ; " GQ# " ; T 
PY :: RETURN 
600 END 



If you want to p!ay this game without a 41** 
drive simply rev ait the lines 1hat have something - •- 
do with one. They are 150 to 170 and 810 to PM 
will also have to add two fines to gt\.~ >o -- n 

and display the score. 

145 MEN=10 

305 DISPLAY kH LI , i ,> : ' iC'-M- ", - 

" ; SCORE 



100 REM GAME WARD #& 

110 REM TANK 

120 REM BY MIKE TOWERS 

130 REM VOL 5-2 NOV 1986 

140 REM TOR THE BIGGEST PROG 

RAM IN THE WORLD 

150 OPEN ♦H^'DShl-StORE/PEC" 

160 INPUT #1 :HSE r SCOPE, MEN f N 

AME$ 

170 CLOSE #1 

130 TALL CHAR<42. "00001B3*,18 

1824") 

190 CALL CHAPf64 f "00183C7E3C 

3C4242") 

200 CALL CHAR*"33 f ' 4 iBDBJGD&3u 

FF3CC3") 

210 CALL CHAF' > b2. ^^Ofcbfjfc'X-*:. 

24L3 11 j 

220 i ALL "MAR * 109. 'SOCC^olL 

0CC5522" ' 

230 CALl. CHARtil3,' , 00rc^22_- 

0CC5522" i 

240 CALL COLOR* 12,7,1 > 

250 CALL CLEAR : : -AU_ SCrEE 

Mt4j :i RANDOMIZE :s "RAJ=bO 

:: XCOL=KC ;: iCOL^l^t 

2S0 CALL SPRITE^ #I 7 :2^ f YCGL 

, XCOL ) 

270 DISPLAY A"04.: fc '~7 } ^IC 

TORN IN DE'nFEES; " 

280 XMAN=INT"T^i;i ;«--**: 

230 VMAN=i 

300 CALL SPRITE' #4.f 1, It. "*>f\ 

N,XMAN« 

31c 1 CAL l MQTIC-N**- ; - 

330 7N-0 

340 IF % --'V r. ^o- :,^-;n -"' 

35" IF * * -HEN 304- 

360 CALL MOTION* #1,^,5) 

370 bOTO ^00 

3c ' 7F a "4 THEN 41 j 

33'"* - ALL MG~ J JONt*#t .0. -5 1 

100 GOTO 50c; 

410 IF Y 4 THEN 440 



fin 



GAME/6 

Here Is a very clever program that is great fun. 
You have to destroy five tanks by hitting -'■hem with 
artillery- You lose a man every time a tank reaches 
you. 



Page 5 



420 TPAJ=TPAJ-5 :: IF 

THEN TRAJ-0 
430 CALL 1QTIGN«#i,0,rt 
TO 500 

440 IF Y --4 THEN 47' 
450 TRAJ=TRAJ+1 :: IF TRAJ^ 
THEN 1PAJ=9Q 
460 CALL MOTIONS!, 0,0;:. -2L 
TO 500 

470 CALL KEY«i,K,5.' 
480 CALL M0TIQNi41 F '-V-" 
430 IF *=1B THEN GOSUB r.4'> 
500 -ALL POSITION' #4 ,Y,X) - 
IF Y>170 THEN 740 
510 DISPLAY AT< 24,24>:TPAJ 
520 IF CN=<-:;THEN 2B0 
530 6GT0 320 

540 LXPL^ABS i"^---^5 - - ■ J* 
,'5+175 ;: CALL POSITIGNc#i f V 

,X) 

550 CALL 3F*:~:E'*2 ? &4, i5,Y-r. 

v 



57<"- 1Ai_L MGTlcNt*!,- 10- i,#3 7 

5S0 TALL -GS:TlGNi#3.Y t X):: 

IF V .5tEXPL*l"i-£XPL THEN 5 

){, 

5?^ CALL POSITION^ #4, 

cW CALl. M0TICN!#2, -d.-l ■ 

£K.' CALL POSITION^ #1, l./.U: 
: IF VI 176-EXPL THEN 610 
62'- r.ALL MOTION' #:, 0,0,^3,0, 
■' •: r • Ail. C0JNCi#2.#4. ['").i N^ 

:;i— : " 1 -l£N ii f" 

r^r ,:all ?osiTinN(#4, -,xj- 

IF YC70 THEN 740 

650 DISHLAY AT' INT' Yl/8^+1 , . 

NTtXl/8;-l):"C<" 

*FS' DISPLAY AT-INTiYl-9^+2, 

NriXl/8)-n:"C£ H 

6/0 CALL DEL SPRITE (#2, #31:: 

»IALL SOUND (-200, -8,0) 

S80 RETURN 

690 DISPLAY ATI INTf Yl /8)+l, I 

NTrXl/8">-l):"rom" 

700 DISPLAY AT'INT'Yi'R«^'- T 

NT(Xl/8>-n:"mm" 

Continued on page 26 



CHECK IT OUT 



iVi^ F 'iO:;oa 



This program will allow you to track up to 9 
different accounts per file. The accounts may be any 
kind you like. The main reason for developing this 
particular program, of which millions exist, was for 
several reasons: 

-Being able to store and retrieve information 
about each account saves you the trouble of entering 
parameters each time the program is run. ..although you 
could if you wanted. 

d -Allows you to update an account and a I so to 
reconcile your bank statement when you receive it. 

-Does NOT ask you to enter a ''zero 11 when leaving 
a function. Boy, I hate it when that happens. Just 
pressing "enter" will return you to the previous menu 
or bring up the next field depending on the particular 
function you are in, 

-Menu driven. My wife even went through the 
program, updated an account and reconciled a 
statement. Just follow the prompts and just remember 
the enter key. 

When you first run the program, you will be 
prompted for the date, if you have a real time clock 
on line, you could alter the program to fetch the date 
automatically. Just pushing enter at this point win 
generate an "N/A" as the date for that particular 
file. 

The next menu has four options: 



Select 2, Add or Delete Account if setting up for 
the first time or if adding or deleting an account. 
Enter the account number and current balance when 
prompted. 

I think that the program is fairly user friendly, 
(according to Malcolm's definition), and you should be 
able to find your way through it without too much 
trouble. As with any public domain program, alter it 
as you I ike. 

Though the program really jumps around a lot, 
(due to the piece by piece way in which ! wrote it), 
it does run well. However, if you do modify It, some 
detective work wilt have to Sr done in order to find 
everything you may iiave < ~ :-\;cr. The word 
"detective" was not, incidentally, chosen arbitrarily 
either. There is a program called XB DETECTIVE which, 
if you have memory expansion, enables you to perform a 
multitude of searches of your program. It's great! 
Anyway, use this program and see if you like it, i 
think, you will. 

100 ^m*:m*:m:m:^^m:tt 



liv ! -t- 

120 \% check 
130 { t 
140 !* 
'■!* 
! * 



150 
160' 



by- 
Ron Marissen 
Channel 39 u«g« 
in Extended Basic 



170 !* 



* 

■T- 

* 
* 



1 . Update Account 

2. Reconcile Account 

3. QUIT (save data) 

4. "HELP" 

If you select help, a screen with a couple of 
po i nters will come up . It isn't rea I I y a I ot of help 
but may get someone going. 

QUlTting will allow you to save your data. You 
don't have to quit, but once this route has been 
taken, data will be lost if not saved. 

Reconcile Account will enable you to, when you 
receive your bank statement, perform those strange 
calculations on the back of it with your computer. 
You should update your account (interest, service 
charges, etc.) before selecting this option. 

Update Account will bring up another menu: 

1. Load Data (both disk and tape are supported) 

2. Add or Delete Account 

3. Update Account 

4. Main Menu 



Page 6 



190 GOTO 210 : : CALL UJLUIV : 
: CALL HCHAR ■:: CALL SCREEN 
zz CALL CLEAR ti A,C f CBAL,DE 
LAY, I, J f K,L,M,N,NR,R ff S,T,W,X 
f Y i Z,A$ f C$ f D$ r FN$ r N*,Q*,Y* 
200 CALL ERR : ; D,E f MODE, NAM 
T,SB f CB,DIF 

210 GN ERROR 1240 s : OPTION 
BASE 1 :r DIM SC* ; . 2>,CBA: .**9 
) , DATES <". 9 ) * AC N* < 9 ) ■ AMT$ v 2 , 20 
) f AMT(2 f 20)s: F$= ,, 0" :: CALL 

KEY(3 f K,S) 
220 Z$^ u 0i23456789,~ : < :: V*= 
SEG$(Z$, 1, 11): : SC$<.1 .^"depo 
sits" :: SC$<2'}= s 'z.\w~ I K«, :i 
230 !6P- 

240 CALL CLEAR s : CALL SUREE 
N(5):: FOR 1=0 TO 12 :; CALL 

C0L0R(I F 16 f 5):: NEXT I 
250 DISPLAY AT (1,9) ERASE ALL 

: "CHECK IT 0UT":TABC9); " 

n :: DISPLAY AT (24,1 

0): "version 1-0" 

continued on page 




PLAY WITH SPARKY 

by HARRY SPARKS 






V > 

J- / 



MINER 2049er. 




"^s^pcrvTar 



Weil, this month Mm going to tell you the story 
of Bounty Bob. This little fellow is the hero of 
"Miner ?CX9er u by TIGERV1SI0N. ! have the command 
module wMch inserts in the peripheral outlet. With 
-ny PF_ bo/, this could be a real problem. Fortunately, 
it is also on disk at Wentworth Supplies and loads 
from Extended Basic. I have only seen one of the 
modules — mine. Thank heavens it is on disk. 

2r.untv Bob has tracked Yukon Yohan to an 
abandoned uranium mine but is trapped inside by a 
-rave-in. There are 8 sections of the mine with cute 
bu* deadly mutant organisms. If they touch ycu-death. 
There are also various ar+icles lost by previous 
mi ners . 

You can escaoe death by jumping over the mutants 
or by touching one of the lost articles, the mutants 
can In tur r be killed. Points are awarded for lost 
articles and ki ! I ing mutants. A! I wa Ik ways in each 
sectlc- will turn solid as you walk over them. 
VntraveMec sections are obvious at all stages. ALL 
walkways solid move you to the next section. 

When loaded, +he title screen appears. The first 
few ~Ime? bear w* x h Bob as he will fill In t^e ti + le 
screen a no go \ n*o a short demo of all S mine 
sect'o~3. Look *hem over careful iy as there is no 
oause oo T ; on so you must move fast and keep moving. 
Why ?. toeM, in the upper right corner is a 
ccurt-cewn. When (or if) you complete that section, 
^he r?me remaining is added to your score. The faster 
you complete the section, the more bonus points. 

Scoring is as follows — each piece of walk-way is 
r points. Each mutant rpade edible by first touching a 



is a 
A! 



KC: 



Dcints. Articles are worth 100 - 
; added ar^ the remaining points on 



1 c-s 4 " article 
^OC pci nts . 
thf j z ! ock . 

.».<■- mentioned, there are 8 levels. They are: 
Si Ides, Transporters, Li I I ipads, Advanced Li I I tpads, 
Radioactive Waste, Advanced Transporters, Pulverizers 
and the Cannon. The Transporters (sections 2 6) and 
Cannon (section 8; could turn your hair as grey as 
mine if you trie': to use them without an explanation. 
Transporters are simple enough-put 3ob in the middle 



of one on any level and push a number for the !~*-~ i 
you want to go to. He will flash off and on i 
several seconds at each end of the operation and i:-. 
still vulnerable to the mutants. The Cannon is a rea 
stinker. Bob can be fired up several levels. Fir:, 
load the Cannon with enough TNT, Go into tbp TNT hi, 
and touch the cannlsters that you warn t-- -d.. in- 
the Cannon, Each cannister equals 10 tons of r<> 
You need 10 tons for each level. If you want to go up 
2 levels, load 2 cannisters in the Cannon. Now f.j. 
the fun part if you think that loading is easy. *: -, 3 
to the level picked, climb the ladder and walk off thr 
walkway falling into the mouth of the Cannon. Pus! 
the joystick right or left to aim. Press the fin 
button to blast Bob to that level. Real easy to do 
with the nasty little mutants after you. Overload t hr 
Cannon and Bob dies. 

Most people will not have too much difftcuHv 
with the Cannon because it will probab' / be 
" lonnnnng" time before this I eve! ' s reached, THF 
you will have difficulty as there are no extra mer 
awarded for completing levels. 

You start with three men and that is it. Very 
realistic in that when a men dies — he dies and is 
forever gone. You start the game off at first by 
hitting the space bar. As each level is completed the 
clock adds bonus points and then an Alert Mode comes 
on screen warning you of the start of the next levc 
and how many men are left. At game end you will K- 
shown you current score and high score. 

The first 2 levels are quite easy. The next 
levels are NOT quite easy as the jumps and moves 
require very exact moves with a lot of these moves 
taking a fair bit of practice to get correctly. If 
(and ! do mean if) you can ge+ through the 6 levels 
you deserve a nice cup of tea. On ievel S trere are 
no lost articles so the mutants must be jumper n-.-r. 
They are always aiive on this level. The fir- L 
levels are called Zone 1. If they are al! -;:m r >ie:e 
the difficulty will be increased. Bob w" M fellow th- 
direction of your joystick and jump when -he I ' re 
button is pressed. 

A few hints might be In order so you won't aye 
too quickly +rying to get Bob through the mid- 
sections. Bob can drop off the pads or walkways a> 
long as there Is another one under htm, but can on; ' 
survive short falls. A fall one pixel too fa*" and he 
will die. Memorize the distance he can fail. Wv, 
you use the Transporters, time your move t^ t-^l-j 
arriving at the new level with a mutant too close- 
Some of the sections have areas that you can ev->r Kir 
can't leave unless that area has the last walkway to 
be walked over. Make sure the Alpha Lock is up. As 
mentioned earlier, most of the jumps must be made at 
the very end of the pad area or you will fall short 
and die. There are a few on some levels where the 

Page 7 Continued on page ?^ 



WHERE ARE THEY NOW 



Tor Hansen 



There was a time, fn very recent memory, that a 
certain Don Cook used to grace these pages with his 
wisdom and knowledge in assembly language. 

You, the reader, may have noticed his recent !ack 
of input. There is a reason for this. 

I have KIDNAPPED him and I'm holding him HOSTAGE 
so I can get some input for my column. 

Actually, Don has himself an IBM clone and is in 
the throes of wrestling his way through Its assembly 
language. He is, however, hanging on to his 99/4A, so 
we may yet be able to get further input from him and 
benefit from his knowledge. 

But ONLY WHEN I LET HIM ESCAPE!! 

Now that I have him, here Is a sampling of some 
high level language work Don has done. 



PAINT 

By Don i Cook 

This program was my first effort at writing a 
Basic program on the T1-99/4A and is, therefore, very 
inefficient. 

The program checks each joystick to find out 
which direction to move, and then moves a blinking 
cursor in the direction selected, leaving a painted 
trail behind. Pressing the fire button will change 
the colour of the paintbrush. 

Alternatively, colours can be changed directly by 
pushing one of the keys on the keyboard. A sound is 
made with a frequency which varies with the colour 
selected. 



100 REM PAINT 

1 1 A*= " FF0000FF0000FF00 u 

120 CALL CHAR (159, A* > 

130 X~t5 

140 X1~.1L 

150 Y--13 

160 Yl = 13 

170 C=2 

180 Cl=2 

190 CALL CLEAR 

200 CALL COLOR C 1,11,11) 

210 FOR C=2 TQ 16 

220 CALL COLOR (C,C,C) 

230 NEXT C 

240 CALL JOYSTU F DX f DY> 

250 CALL J0YST(2,DXl f DYl> 

260 CALL KEYCi,Kl,Sl> 

270 CALL KEY<2,K2,S2) 

280 IF (K1>18) + CKK2)THEN 35 



290 IF Kl=18 THEN 310 
300 C=Ki-l 

3i0 C~0 1 

320 CALL S0UNDC500, 252+5*C f 2 



350 

360 

370 

X-l) 

380 

Y-l) 

390 

400 

410 

420 



430 

A 4 v 



X=X+DX/4 

Y=Y-DY/4 

X=INTt32*aX-l)/32-INTn: 

/32)))+l 

Y=INK24*((Y-i}/24-INKc 

/24)))+l 

CALL HCHARCY ? X f C£8+lh; 

CALL HCHAR(Y f X f 30) 

CALL HCH AR ( Y\ X ? C*8+ 1 6 ) 

IF CK2>18)+CK2<2>THEN 49 

IF K2=18 THEN 450 



Hydro from page 3 

530 YC=YB*365 

540 YC= INK YC* 1 00+ . 5 ) / 1 00 

550 REM cost per Kwh=KC 

560 KC=TC/TKWH 

570 KC= I NT ( KC* 1 00+ . 5 ) / 1 00 

580 NEXT X 

590 PRINT 

600 IF F*= ,, 2 H THEN 860 

610 PRINT » SUMMARY - 

620 PRINT "Kwh used (last 4 r 

eads)"? TKWH 



630 PRINT *'# DAYS from last 



4 readings, 



640 PRINT "COST Oast 4 rdqs 

. . )*"jTC 

650 PRINT "...,, CONCLUSION 

£60 PRINT "Annual Kwh used - 

. - . " ? AKWA 

670 PRINT "Av. daily Kwh fro 

m last 4 readings « 

. . ■ . . M ; KD 

680 PRINT "COST per Kwh..,.. 

«£ II - it II , j.-T- t 



450 C1=C1+1 

460 CALL 3QUND<500, 252+5*01, 

470 TF r.- iq THEN 4*0 

'4- "fit"- '\ " " V - _ ^ - '' » - r ^' 

500 Yl-Yt-DYl/4 

510 Xl=INK"32*((Xl-l)/32-INT 

((Xl-l)/32)))+l 

520 Yi=INK24*O.Yl-i)/24-INT 

((Yl-D/245 n+t 

530 CALL HCHAR'" /i, XUC1*8+16 

1 

540 CALL HCHAR(Yl,Xl, 159) 

550 CALL HCH AR ( Y 1 , X 1 f C 1 1-8+ 1 6 

) 

560 CALL KEY(5 T KC,S3> 

570 IF K3<M79 THEN 240 
580 GOTO 130 

5Vt ; LiVl 



690 PRINT "DAILY COST....... 

. . B $";Dt;: 

700 PRINT "ANNUA! COST , . 

.$";YC 

710 PRINT "Suggested 80AL-.6 
1 00 Kwh . , ' ! ,! 
720 FDR PAUSE- 1 IP «000 
730 NEXT PAUSE 
740 END 

750 OPEN #]:"PK1 , \ OUTPUT t SEG 
UENT I AL, VARIABLE 
760 PRINT #isCHR*(27);CHR*<6 
6 ) ; CHR$ (3)j CHR$ ( 27 ) ; CHR* ( 65) 
:CHR*(9) l 

Continued on paqe 18 



v,J- i 



^-* fe— ' 



GRAM 



bv Jean Johnson- 



n 
r 


1 DAPPLE 


*_ 


3 


G 




4 


c 


6 






7 


•^ ! 


9 






in 


; - 


12 






13 


\ 4 


15 







J 








Mv. •- J - 

Past tense : f 


keep 




J 

8 
11 

'! 4 


Bo seech 

S'nall horses 

Kin 

Cat or dog 

frighten 




INSTRUCTIONS FOR PLAYING 

Using the clues for the numbered 
areas, enter your answers, makin ;j 
sure you comply with the rules: 
Remove one letter from the first 
word, placing it in the ho:- o< 
the left. The centre word must 
be an anagram of the remaining 
letters. Remove one more lett^ 
and place it in the box on ; iu* 
right. The third word must then 
be an anagram of the reraa uii n- 
letters. When you have finisher 
the left and right columns will 
spell something to do with your 
hobby . The fir s t wo r d 1 s c] .o > ^ 

3 Metal 

6 Backbone 

9 Bash 

12 Physical Training 

15 Concern 




Answers to PUZZEL number 12 

by Jean Johnson 




Page 9 



i i 


L 


GREMLIN 


2 


LINGER 


3 


LINER 


V, 


\ Y 


4 


YEARN 


5 


EARN 


6 


RAN 


F 


1 A 


7 


NAME 


8 


MEN 


9 


ME 




R 


10 


EASTER 


11 


TEASE 


12 


SEAT 


E •' 


c 


13 


SCARVES 


14 


SAVERS 


15 


SEARS 




S 


16 


BEAST 


17 


BEAT 


18 


TAB 


! E ; 



Tho Cac=+- I ~-. MM EDITED BY 

1 n © r-ast Lane um johi»on 





>jM , ;." 3C^^"N 






'V ''*« 



001 **************************** 




047 


002 * GRAVITY BALL WITH PADDLE * 




048 


003 * 




by * 




049 


004 * 


Stephen Johnson * 




050 


005 ************************** * * 




051 


006 


DEF 


START 




'"52 


007 


REF 


VSBW, VMBW, VSBR, VMBR, VWTR 




053 


008 


REF 


KSCAN,GPLLNK 




r-C a 


009 ********************************** 




055 


010 *R3 & 


R4 - EALL'S Y I X POSITION * 




056 


011 *R5 & 


R6 - BALL'S Y & X SPEED * 




057 


012 *R7 - 


NUMBER OF BALLS * 




058 


013 *R8 - 


PADDLES X POSITION * 




059 


OH *R9 - 


PADDLES EFFECT ON BALL * 




060 


01 5 *********•***•**************+***•**•** 




061 


016 STATUS 


; EQU 


>837C *ADDRESS OF STATUS REGISTER 


062 


017 KEYNUN 


1 EQU 


>8374 ^ADDRESS OF KEYBOARD CODE NUM 


06? 


018 KEYVAL 


. EQU 


>8375 *ADDRESS OF KEY VALUE 


RETURND 


064 


019 NUM 


EQU 


>837A *ADDRESS OF NUMBER OF 


SPRITES 


065 


020 MASK 


DATA 


>2000 *MASK TO TEST EQUAL STATUS BIT 


066 


021 ZERO 


DATA 







067 


022 SLIST 


DATA 


>6060,>800F 




068 


023 


DATA 


>BD77,>8401,>D00C 




069 


024 SPDEF 


DATA 


>3C7E, >FFFF, >FFr F, >7E3C 




070 


025 


DATA 


>0000, >0000, >0000, >0000 




071 


026 


DATA 


>0000, >0000, >0000, >0000 




072 


027 


DATA 


>0000, >0000, >0000, >0000 




073 


028 


DATA 


>FFFF, >0000, >0000, >0000 




074 


029 


DATA 


>0000, >0000, >0000, >0000 




075 


030 


DATA 


>FFFF, >0000, >0000, >0000 




076 


031 


DATA 


>0000, >0000, >0000, >0000 




077 


032 NUMBAL DATA 


10 




078 


033 YPOS 


BYTE 


50 *Y STARTING POSITION 




079 


034 XPOS 


BYTE 


128 *X STARTING POSITION 




080 


035 YSPD 


DATA 


*Y SPEED 




081 


036 XSPD 


DATA 


60 *X SPEED 




082 


037 DELSP 


BYTE 


>D0 *Y POSITION STOPS ALL 


SPRITES 


083 


038 BBL 


BYTE 


>80 




084 


039 SPACE 


BYTE 


>20 *ASCI I CODE FOR SPACE 


(32) 

Pag 


085 

e 10 



** THE GAME 



040 YBT BYTE 182 

04; YBTT BYTE 191 

0,l':_ YTP BYTE 1 

'- :." OY T E :-< 4 



even 
texend text * 

EVEN 
PADSTR DATA >BEOO 

*********************** 

* PROGRAM BEGINS HERE * ' 
+ ■**-***■*-*********-*■*■*■+**-*■ 

START LWP' >8300 *SrT *0~\*;r*CT .'.p-;r,\ tc 

* * sr«r"* J ~ V ;7CC 

blwp ©sound? *sr" v-p ":■'?■": o'-oc" 7 "- 

*.#♦#*** +^^.* + + **^(.H(. H (.**.y ^.j/.^t.jf.^jt-M ^it.*,**-**** 

* LOOP TO CLEAR SCREEN' WITH C= ACES * 
*****+****************-************** 

MAIN MOV «NUMBAL,R7 *NUM3EF OF BALLS 
5L «BEEP 

CLEAR L I &0, 757 *LAST SCREEN' P :? ' ~ ! ON 

L J R 1 , > 2 000 *MS 8= S P * C E ( " 2 ) 
CLRMCR 3LWP 8VS3W * C3 'JT CHARACTER ON' SCREEN 

DEC RO ^DECREASE SCREEN POSITION 

JLT I NIT *1F SCRN POS<0 THEN LEAVE LOOP 

JMP CLRMOR *REPEAT LOOP 
************************ 

* TEST FOR END 0^ GAME * 
************************ 

ENDOFG DEC R7 ^DECREASE 3ALL COUNTER 

JNE ! NIT *!F MEN NOT CONTINUE GAME 

Li RC,>300 *Y-P0S!T!0N SPRITE #0 

MOVB gDELSP,R1 *LOAC DELETE SPPiTE DATA 

3LWP flVSBW *DELETE ALL SPRITES NOW 

LI R0,>180 *M!P SCREEN ROW 

Li R1, TEXEND *POINT ENO GAME TEX*" 

LI R2,32 *32 BYTES FOR ONE ROW TEXT 

BLWP gVMBW *WRITE END 0^ GAME 



LI R2,4000 
DELAYT BL 8DELAY 

DEC R2 

JNE DELAYT 

JMP MAIN 
*********♦*-**•****+****+* 

* INITIALIZE VARIABLES * 



♦DELAY BY 32 DELAY TIMES 
♦DECREASE UNTIL 
*IF NOT DELAY AGAIN 






09 4 



MOV 
MOV 



<***->■««*■>-********** 

MOVrj 3 v POS,R3 ♦S'ZT Y POSITION 

MGve <?XrCS,R4 *SET X POSITION 

i?YSFD,R5 *SET Y VELOCITY 

SXSPD,R6 ♦SET X VELOCITY 

.. . , 1 „,. : ; 4 -W.'?iTf TO VDP RCGiSTEh i 

i. r.EFif*^E £PR i TES * 

l.i °0,>AOO ♦SPRITE CHARACTER >30 

l.1 R1.SPDEF *DEFINITION OF CHARACTER. 

Li P2;6& *2 DOUBLE Si ZED SPRITE OEFS 

"<^0 OE^iNITfON TO ""A3: r 



1 UO 



: P0,>300 *ADDR OF SPRITE ATTR Ll?7 
; 31,SUST *P0 INTER TO THE LIST 

'- ' n ^10 BYTES IN LIST 
.WP SVM3W *SEND SPRITE ATTRIBUTES 



♦CHECK FOR LEFT OF SCREEN 
*IF EQUAL REVERSE X DIR 
*CHECK FOR RIGHT OF SCREEN 
*!F EQUAL REVERSE X DIR 



146 * 

14? CE R1>@XLT 

148 JEQ XREV 

149 CB R1,eXRT 

150 JEQ XREV 

i>^ * SCAN KEYBOARD * 

153 **** « ************ 

154 KEYCHK CLR RO 

155 LI R1,>0300 

156 MOVB R1,«KEYNUM 

157 CLR R1 

153 MOVB Rl, ©STATUS 

r" ■■? \JP ffKSCAN 

160 LiMI 2 

161 LIMi 

162 MOVR G>B375,P1 

164 CI R1,15 ♦FCTNBACK HASS BEEN PASSED? 

165 JEQ RETURN *!F BACK PRESS, RETURN TO E/A 

if ~' h P9 *srT padle T :o:: ; i';;: t>— .: i '. 



iM YTr 



yCHN? 



144 



FOR PADDLE AND RETURN TO E/A 168 

P0 ; >300 *READ Y POSION 169 

*5,F? ♦ADD Y SPEED TO X POSITION 170 

♦MOVE Y POS TO R1 171 

*WP!TE NEW Y PCS TO VDP 172 

* INCREASE VERTICAL SPEED 173 
♦CHECK FOR TOP OF SCREEN 174 
♦IF HIGHER JMP TO Y BOT CHEK 175 
♦ABSOLUTE R5, REVERSES DSR 176 
♦EXECUTE SOUND EFFECT 177 

178 

*CHECK FOR BOTTOM OF SCREEN 179 

♦IF < BOTTOM JUMP TO X CHK 180 

♦PUT BALL'S X POS ! NTO R1 181 

♦ADD 4 TO COMPARE TO PADDLE 182 

♦CHECK LEFT SIDE OF PADDLE 183 

♦|F LOG SCALY LOW-NO BNCE-CHECK 184 

* FOR BOTTOM 185 
*ADD NEGATIVE >1000 186 
♦COMPARE TO PADDLE POSITION 187 
♦IF GREATER, NO BOUNCE; 188 

CHECK FOR BOTTOM 189 

*MAKE R5 POS I TV E 190 

*MUST HAVE HIT TO REACH HERE 191 

♦PADS EFFECT ON BALLS X- SPEED 192 

♦COMPARE R6 TO ZERO 193 

♦IF NOT VALUE IS OK ELSE 194 

*BAL WILL NEVER HAVE X-SPEED 195 

♦EXECUTE SOUND EFFECT 196 

197 

*CHECK FOR BOTTOM OF SCREEN 198 

♦IF NOT JMP TO CHCK X- 199 

* ELSE MUST HAVE- 200 

* LOST BALL-RESTART PROG 201 
♦READ X POSITION 202 
♦ADD X SPEED TO X POSITION 203 
♦MOVE NEW X POSITION TO R1 204 
♦WRITE NEW X POSITION TO VDP 205 

Page 11 



'/.'' 


R3.R1 


- , 


3vTj?W 


' K r 


ricr 
r>. J 


CYi 


R1.SYTP 


>' 


YBTCHK 


-; - 


R5 


' ' '.'r 


SSCUM£1 




r 1 , 6Y5T 


-'- 


XCHNG 


-?7 


R4,R2 


^i 


.-,2,1024 


..,-. 


r:,r8 


- 1_ 


CHKBOT 


-* i 


R2,-4096 


J 3 


R2,R8 


J'rl 


CHKBOT 


in c 


R5 


K; '~ ! » 


pr 




P9,RG 


vr-. 


Z6,R6 


!r "~ 


EXSND 


VC 1 ' 


gXSPD,R6 


BLW & 


@SOUND: 


JMP 


XCHNG 


~P 


RI^YB^T 


a r 


XCHNG 


tr L 


§HONK 


Jyip 


ENDOFG 


Li 


RO, >30" 


A 


R6.R4 


MOV 


R4,R1 


BLWP 


SVSBW 



CI R1,83 

JNE CHKA 

A I R8,~100 

LI R9,-10 

CHKA CI R1,65 

JNE CHKD 

A! R8,-200 

LI R9,-20 

CHKD Ci R1,68 

JNE CHKF 

A! R8,100 

LI R9,10 

CHKF CI R1,70 

JNE MOVPAD 

A I R8,200 

LI R9,20 

MOVPAD LI R0,>01E2 

BLWP 8VWTR 

LI R0 1 >305 

MOV R8,R1 

BLWP @VSBW 

BL 6DELAY 

JMP LOOP 
*#*#■*(■*♦ 

XREV BLWP 6SOUND2 

NEG R6 

JMP KEYCHK 

♦♦DELAY TO SLOW PROGRAM DOWN** 



♦CKECK IF S WAS PRESSED 
♦IF NOT JMP CHKA 
*MOVE PADDLE LEFT SLOW 
*X-SPEED EFECT ON BALL IF BNCE 
♦CHECK IF A WAS PRESSED 
♦IF NOT JMP TO D CHECK 
♦MOVE PADDLE LEFT FAST 
♦PADDLES EFECT ON BALL 
♦CHECK IF D WAS PRESSED 
♦IF NOT JMP TO F CHECK 
♦MOVE PADDLE RIGHT SLCW 
♦PADDLES EFFECT ON BALL 
♦CHECK IF F WAS PRESSED 
♦IF NOT JMP TO MOVE PADDLE 
♦MOVE PADDLE RIGHT FAST 
♦PADDLES EFFECT ON BALL 
♦DOUBLE SIZE PADDLE 
♦WRITE TO VDP REG 1 
♦MOVE PADDLE 
♦MOVE PADDLE POSITION "OR VSBW 



♦WRITE PADDLE POST! ON ^ 
♦CAUSE TIME DELAY 

♦BEGIN GAME LOOP AGAIN 

♦EXECUTE SOUND EFFECT 
♦REVERSES X DjRETION 
♦RETURN TO KEY SCAN 



VDP 



DELAY 



JMI 



DELAYZ DEC 
JNE 
LIMI 

RT 

********** 

* RETURN * 



R0,180 

RO 

DELAYZ 



*ENABLE VDP I NTERUPTS ~0 
♦SETS DELAY AT 300 
♦DECREMENTS DELAY 
♦IF ZERO THEN EXIT DELAY 
♦DISABLE VDP INTERRUPTS 
* ELSE CONTINUE DELAY 



206 
207 
208 
209 
210 
211 
212 
213 
214 
215 
216 
217 
218 
219 
220 
221 
222 
223 
224 
225 
226 
227 
228 
229 
230 
231 
232 
233 
234 
235 
236 
237 
238 
239 
240 
241 
242 
243 
244 
245 
246 
247 
248 
249 
250 
251 
V52 
253 
254 
255 
256 
257 
258 
259 
260 
261 
262 
263 
264 



RETURN L! 
L! 



R0,>300 *SET Y POS TO DO 
R1,DELSP *DATA TO DELETE SPRITE 
BLWP @VSBW *DELETE SPRITES 



265 


SOCB @SET,@>83FD 


266 


RT 


267 


END 



CLR RO 

MOVB R0,@>837C *CLEAR STATUS BYTE 

LWPI >83E0 *SET WORKSPACE 

B @>70 *EXIT PROGRAM ALTOGETHER 
** GOOD/BAD RESPONSE TONES ** 
** BL 6BEEP **0R** BL @HONK ** 
BEEP MOVB @ZER0,@>837C 

BLWP SGPLLNK 

DATA >34 

RT 
HONK MOVB @ZER0,@>837C 

BLWP 0GPLLNK 

DATA >36 

RT 

* AUTOMATIC SOUND EFFECTS * 

SNDWSP BSS 32 SOUND WORKSPACE 

*CALL S0UND(50,-7,0) 

SND1 BYTE 2,>E6,>F0,3,1 ,>FF,0,0 

*CALL SOUNDC 1,1 10,0) 

SND2 BYTE 3, >89, >?F, >90, 2 , < s >^F, 

*CALL SOUND* 1,-5, 5 5 

SND3 BYTE 2, >E4 ,>F2, 2, 1 ,>FF,0,0 



SOUNDS DATA SNDWSP, $+2 
L!M! 

LI R0,>1000 
L! R1,SND1 

L' R2 ; ,>38 

BLWP @VMBW 

RTWP 
S0UND1 DATA SNDWSP, $+2 

L! R0,>1000 

BL SALT-' 

RTWP 
S0UND2 DATA SNDWSP, $+2 

L! R0,>1008 

BL @AUTO 

RTWP 
S0UND3 DATA SNDWSP,, $+2 

L! R0,>1010 

BL @AUTO 

RTWP 
WAIT MOVB @>83CE,@>83CF 

JNE WAIT 



IS SOUND FINISHED? 



RT 



♦RETURN !F SOUND FINISHED 



* AUTO SOUND PROCESSING * 

SET DATA >0100 

AUTO LIMI 

MOV R0,@>83CC 
MOVB @SET,@>83CE 



by Stephen Johnson 

A few new additions have been made to i ast v.-er-. -, 
fine program, Sound effects occur when the bail nits 
the top, sides, or paddle. There Is r; :a'j'i'- v •"; 
which to hit the bail. Stephen has given us the 
option of a fast paddle or a slow paddie simply by 
using S or D for slow or press A or F for a fast 
paddle. Another wonderful improvement is the ball 
counter (register 7). You get ten balls and then the 
game ends with a message. There is a fixed de'ay an-i 
the game starts al! over again. 

1-15. . . , Program header, 

6 .DEFined entry point into program, 

7-8. . , , .REFerence for built-in utilities. 

16-19. , . EOUate values for easier (and better) 
programm i no techn i que. 

22 Data to send to sprite attribute list (sprite 

row location, sprite column location, 
character, colour). The fifth byte Is >D0 
( 208 dec i am I ) . This va i ue Is p ! aced i n the y 
location after the ias 4 " sprite *c prevent any 
higher numbered sprites showing up, 

2~-Z~ ,, .Character def : r. I ^'cr •;-" ' .- ; :,2 ; ' yi ozcc:^. 

32 Data to represent "umbc-r ::" D3.!s. 

33-36. . .Variables for V pes It Ion, X position, Y 
direction, X direc-Msr. . 

37 >D0 In sprite attribute list as Y position 

wIU delete all sprites after ;•*-. 

39* AscI I code o* space character 32. 

4. 0-4-4 , „ , c!dce ^ ": : ~ z ~^er ^ a r : a C : -?s , 

47..,.., End cf came message 

48...,*. The "EVEN" directive ^e ! i s the assembler to 
assume an even word boundary so tra+ the TEXT 
and EYTE directives den't screw I + up, 

r ? . ..... Se^ up wo r -■' s s- a c e a r ^ a [ r - p e ~ am -a ^ 3 - 

address >8;CC, -'-iy >:-r--c"-<cn using 
registers will execute a~r a mucn hicner speed 
i f the reg i store a 5 ™* 3 I ^-cs^ec i n +Ho grp 3 >p^oo 

55. ,... .Executes rou+ine to pur aM ' ~-.^-, "-<-- '- ,"" 

ram reacv f ''"~ i n rta'i* acrf-:: ^ i~ ~r \ ; ' I no , 
: : 9. . . . . .Load R.7 with number cf oaiis. 

60. .... .Execute a GPL routine to call a sound. 

61-66. . .Clear screen by put- 1 -', 'v: •-: ?■?■:"> '• "-.ictnr 'n 

every screen position. 
70-71 .. .Tests if balls are rone, 

72-74... If balls are gone a!! sprites are deleted. 
75-78. . .Writes a neat little message accross centre 

screen . 
80-83. . .Delays for a fixed length of time before 

jump ? ng to +he ma I n orooran + o star+ a ! ! ove^ 

again. 

INITTalize registers 3 to 6 . R3 will now be a 

variable containing the row position of the 



87-90 

Page IS 



bail. R4 is a variable for column location. 
Register 5 contains the Y direction and speed. 
R6 contains the X direction and speed. 
91 -92.,. Writes the value for double sized sprites (you 
will see next month why double-size is used) 
to VDP Register 1 . 
96-100. .Using Vdp Mulitple Byte Write utility the 2 32 
byte character definitions are defined as the 
first sprite definitions in the table. The 
ball sprite character definition will be 
referee! to as charcter >80 while the paddle 
w T 1 S be character >84, More sprites can be 
Defined ana placed in the list. You can 
ca leu I ate the address by mu I tip lying the 
sprite number by <h<> nuvib'.jr of bytes in the 
definition and adding it to >40O i.e. the 
address for sprite #0 is >400+0^>400 or for 
sprite #1 is >40C+1=>420 or sprite #2 is 
>400+2=>440. The character definitions would 
be called >80,>84,>88,etc. 

101-104. sprites win appear on the screen according to 
the list In line 15. This list contains the 
y-dot, x-dot, character, and colour of the 
sprites and is written to the VDP RAM. 

109 Loads R0 with the base address of the sprite 

attribute list i.e. R0 points to the 
Y-position of sorite number zero (sprite #0). 

; 10, , « . .Adds register 5 to register 3 or adds the 
ver+ical speed to the Y position. 

THE FOLLOWING EXPLANATION OF LINF 59 IS IMPORTANT 

111 Moves the variable Y Dosition to R1 ready for 

a Vdp Single Byte Write utility. NOTE THAT in 
a vdo write only the lef + byte is sent but the 
whole register of R3 contains the Y position. 
The Y position is remembered in the left byte. 
The -3-:eedi "■ s added to the who! e register. 
When the ricr,"** byte reaches the value >FF and 
a speed of 1 >s added the right byte overflows 
into the left byte and the left byte is 
incremented bv one thus the* sprite will be 
;jwed one* p:\ei. The "itiht byte is now 0. 
Another wav of explaining this method of 
centre! ling the sprites speed is to say that 
if the speed were >10 (16 in deciaml ) it would 
take 16 additions of this speed to move the 
sprite one pixel < >0100 + >10 X 16 - >0100 + 
>0100 = >0200 ). In extended basic this h; 
Impossible but because of the impressive speed 
of assembly language this method works very 
we I i indeed. 

112 Y position is sent to VDP RAM as sprite moves 

up or down, 

11? Verticle speed has one added to it each time 

it bounces. 

114 The Y position now remembered in R1 as well as 

R3 is compared to the top of the screen and if 
high program control is sent to Y bottom 
check . 

116 If control passes to this line then the ball 

has reached the top of the screen and the 

Page 



speed is made positive so the ball will a 

down. 

117 Call a sound effect when ball hits top. 

119 Compare Y position to bottom screen limit. 

120 If the comparison is low (JL, JH, JHE are use 

for byte comparisons) control is passed to th? 

code at I ine 142. 
121-122. Puts the ball X position in R2 and adjusts i- 

so that a comparison can be made to determine 

if the paddle has been struck by the ball. 
123 Bal I ' s adjusted X position is compared fr 

paddle position, 
124..... If comparison is lotf control is passed - l 

checjk for bottom of screen else the oth'- 

side of the paddle is checked to see if ba! 

hit paddle (I ines 126-123). 
130 Y velocity of ball Is made positive to preven- 

modification of value. 
131 Bal! has definately hit paddle. Negates spec 

so that the ba I I wi I I go up. 
132 If paddle was moving when it hit the ba 1 ' 

speed will be transferes from R9 to Rfi •) 

modify the balls speed. 
133 It is undesirable for the ball not to have a 

X speed however so MOV R6,R6 tests it to se?. 

if the bal Is X speed is 0. 
134-135, If balls X speed is not then execute fin- 

136 else (135) load R6 with a new speed. 

136 Execute sound effect as ball hits paddle. 

137 Jump over Y bottom check. 

138-139. Compares balls Y position to very bottom c 

screen. If the comparison is high then th : 

bal! has passed off the bottom of the sc^ee 

and you lease a bail . 

140 Execute bad response tone. 

141 Jump to END OF Game tester* 

142-145. Calculates and writes the X position the sam? 

way as the Y position. 147 The X position 

now contained in R1 as well as R4 is compare./ 

to the left screen limit and if it is equa 

control is passed to code that will reverse 

the X direction. 
149-150. The X position now contained in R1 as well a: 

R4 is compared to the right screen limit ar. - 

if it Is equal control is passed to code tha - * 

will reverse the X direction. 
154-159. These lines of code should seem quite rami I i ar 

by now* They are a standard way of access in' 

the keyboard. 

162 Gets the asci i code in the word value cf R1 . 

164 Compares the ascii code with function back ar 

if it is equal jumps to the code at line 2C. 

and returns back to the editor/assembler. 
168-171 .There are four such comparisons and subsequen 

loading of registers 8 and 9. According to 

which one of four keys Is pressed R8 and R 

will be loaded with the paddle speed anr 

paddle's effect on ball respectively. 
184-185. Resends double-sized sprite information again 

If you save the >E2 part at location >83D4 th-. 

IS 



sprite size will not change when a key is 

pressed, 
186-188. Move paddle on screen. 

189 Branch and link to delay time routine. 

190 Jump back to beginning of game loop. 

195-203. This delay routine can be called at any time 

with the BL Instruction which is much like 

f^OSUB If) RASIC, 



207-209. Deletes all sprites in preparation for a safe 

return from this program . 
211-214.Returns to editor/assembler. 
225-267. Wi I i be covered In deta i I in a section on 

sound. 

HAVE FUN!!!! 






tf - 



V 4 V/ 



by lain Johnson 



1 he 



^ 



written in the btt-map-mode and 
will be added to in" an article 
next month to make the heli- 
copter move. You will notice 
that most of the tines contain 
subroutines, in only the last few lines 
(lines 331-332) Is Alrvcif actually drawn. 
There are two main lists of data. One for the 
character def in it ions and one for the cc lour 
definitions. If you feel like it you can look over 
the code or just type it for fun!!!!! 



Q01 ******* ********* 

002 * AIRWOLF * 

003 * by * 

004 * lain Johnson * 

005 ***********+•*■•*-*# 

006 ************************************** 

007 * AIRWOLF SPECIFICATIONS FOR DRAWING * 

008 * GRAPHICS M0DE=BIT MAPPED MODE * 

009 * SPRITES=1/WHITE UNDERSIDE * 

010 * 2/R0T0R * 

011 * SPRITE S!ZE=D0UBLE UNMAGNIFIED * 

01 2 ************************************** 

013 DEF START 
KSCAN,GPLLNK,XMLLNK,DSRLNK 



014 


REF 


KSCAN 


015 


** EQUATES 


** 


016 


STATUS EQU 


>837C 


017 


VDPSTA EQU 


>837B 


018 


NUMSPR EQU 


>837A 


019 


* 




020 


KEYNUM EQU 


>8374 


021 


KEYVAL EQU 


>8375 


022 


J0YY EQU 


>8376 


023 


J0YX FOU 


>ft^77 



CPU STATUS REGISTER 
VDP STATUS REGISTER 
NUMBER OF SPRITES IN MOTION 



025 SUBWS EQU >2700 



326 



029 
030 
031 
032 
033 
034 

036 
037 
038 
039 
040 
041 
042 
043 
044 
045 
046 
C47 
048 
049 
050 
051 
052 
053 
054 
055 
056 
057 
058 
059 
060 
061 
062 
063 
064 
065 
066 
067 



SUBWSi: EQU >2720 
HEXWS r O ! J >?~nr 

jTiVfl r i ;- rc;U 

MYREG EQU >£320 
* 

EQUMSK DATA >2000 

SPACE DATA >2020 SPACE CHARCTERS 

** AIRWOLF DATA FOR DRAWING ** 

* CHAR DEF STARTING AT ADDRESS >0000 



CHPDEF DATA 



;ts,add^ 



DATA >dGOO,>OCFF/>OCOC,>0000 *1 
DATA >0000,>00F0,>0F0C\>C0C0 *2 
DATA >0000,>0000,>FFOQ,>OCOC *t 
DATA >0000,>0000,>COFF,>010C *4 
DATA >OC00,>00OO,>OOFO,>8FO0 *5 
DATA >0000,>000C,>0C0C,>F"C3 *6 
DATA >0000,>0000,>OOCC,> fr -F :r *7 
DATA >0000,>0000,>OCOO,>FFFO *8 
DATA >OOOC,>0000,>QOC7,>F800 *9 
DATA >0000,>0000,>0CFF,Vc00C *1C 
DATA >0000,>0000,>3FC0,>0000 **1 
DATA >0Q0Q,>00C3,>FC00 f >00CG *!2 
DATA >0000,>00FF,>0CCC,>000C *13 
DATA >0000,>OOCC,>0000,>0000 +14 
DATA >000C,>0000,>010^,>0707 *\* 
0ATA >0000,>00F^ r «>FnS-., **£CE0 *"6 

* CHAR QEF >C128 

TATA >??.?£ j1 ?■*?• 

DATA ^OOO^OOOO^OQOO^OIO*? *1 
DATA >0C0C,>0C0C,>0CFF,>FFrF *2 
DATA >O00O,>O0D0*>00fF / >frFF +3 
DATA >§000.,:>00.00>>OCtC # ^-^FF *4 
DATA >0000,>0000,>OCCC,>OOF8 *^ 
DATA >000C,>0000,>0000.>0000 *6 
DATA >0000,>0000,>0000,>0001 *7 
DATA >0000,>0000 J >00C0,>00C0 *8 
DATA >0000,>0000,>0000,>0000 * Q 
DATA >0F0F,>1F1F,>3F7F,>7FFF *10 
DATA >E0C0,>C0C0,>8080,>8080 *11 

* CHAR DEF >0218 

DATA >0218,13*K 

DATA >0000,>0000,>0000,>0107 *1 



Page 14 



068 

069 
070 
071 

072 
073 
074 
075 
016 

V 1 I 

076 
079 
080 
081 
082 
083 
084 
085 

C87 
088 

f\p o 

090 
091 
092 
093 
094 

096 

098 
099 



10/ 



114 

115 



124 
125 

126 
1^7 



DATA >0000,>010F,>3FFF,>2361 *2 
DATA >0F3F,>FFFF,>FFFF,>FFFF *3 
DATA >FFFF,>FFFF,>FFFF,>FFFF *4 
DATA >FFFF,>FFFF,>FFFF,>FFFF *5 
DATA >FFFF,>FFFF,>FFFF,>FFFF *6 
DATA >FFFF,>FFFF,>FFFF,>F8C0 *7 
DATA >FFFF,>FFFC,>EOFF,>FFFO *8 
DATA >FDFD,>FBFB,>F7F7,>E700 *9 
DATA >DFDF,>BFBF,>BF82,>0100 *10 
DATA >FEFD,>FEFF,>8000,>0030 *11 
DATA >FFFF,>FF7F,>3F1F,>0F03 *12 
DATA >G000,>0Q30,>C0E0,>E0FC *1 3 

* CHAR DEF >0310 

DATA >031 0,9*8 

DATA >0000,>0000,>OFOF,>1F3F *1 
DATA >0F1F,>3FF1,>7FF3,>E3C7 *2 
DATA >C173,>8383,>FFFF,>FFF0 *3 
DATA >FFFF,>FFFF,>FFFF,>FFFF *4 
DATA >FFFF,>FFFF,>FFFF,>80FF *5 
DATA >FFFF,>FFFF,>FFFF,>FFFF *5 
DATA. >f r EF0 ; >FTFE,>F8F8,>E000 *7 
DATA >FFFF f >F0C0,>0000,>G0G0 *8 
DATA >COOO,>0000,>0000,>0000 *9 

* CHAP DEF >C41C 

DATA >41 0,6*8 

DATA >*F0Q,>0000,>0000,>0000 *1 
DATA >87FF,>C00C,>0000,>0000 *2 
DATA >FFFO f >0000,>0000,>COCO *3 
DATA >FEFF,>0000,>0000,>0000 *4 
DATA >FF"F,>OOOO f >GOOO l >0000 *5 
DATA > C 830,>COOC,>0000,>0000 *6 

* COLC'JR DEFINITIONS STARTING ADRESS >C000 
COLDEF DATA >0C00,16*8 

DATA >FOFC,>FCF0 f >F0F0,>FOFC *1 
DATA >rOFC,>F0F0,>F0F0,>F0FO +2 
rv &TA ^cr.rr-- server* >£rr.p~ v Frier- •*** 

CA^A >FOF0,>F0FC,>FCF0,>F0FC *4 

DATA >FOF0,>F0FC,>FCFC,>F0FC *5 

DATA >r0FC,>FOFC,>FOF0,>F0FC *6 

DATA >FOFC,>FCF0,>FOFO,>F0FG *7 

DATA >F0F0 f >FCFC,>F0F0 f >F0F0 *8 

DATA >FOF0,>F0F?,>F0FO,>F0FC * Q 

DATA >FOFO,>FOP0,>FOFO,>FOFC *1C 

DATA >FOFO,>F.;F0,>F0F0,>FCFC *1 1 

DATA >FCFC,>F0FO.>F0F0,>FOF0 *12 

DATA >FOF0,>F0FO,>FOFO,>FCF0 *13 

DATA >FOFO,>FOFC f >FOFO,>F0FO *14 

DATA >F0F0,>F0F0,>F0F0,>F0F0 *15 

DATA >F0F0,>F0F0,>F0F0,>F0F0 *16 

DATA >1010,>1C10,>1010,>1010 *1 

- ;i y /; y -i " -; ^ t -. i ^ * p > -i y> i y, ; > i y 1 *3 

^ /. r - > ' * , > 1 T j > ' ^ * r > 1 '^ 1 * 4 

DA t a ^IOIO^'CIO.MOID^IOiO *5 

DATA >1010,>1010,>1010,>1010 *6 

DATA >1010,>1010,>1010,>1010 *7 

DATA >1010 J >1010,>1010,>1010 *8 

DATA >1010 J >1C10,>1010, >1010 *9 



128 DATA >1010,>1010,>1010,>1010 *10 

129 DATA >1010,>1010,>1010,>1010 *1 1 

130 * COLOUR DEF >218 

131 DATA >218,13*8 

132 DATA >B0B0,>B0B0,>B0B0,>B080 *1 

133 DATA >1010,>1010,>1010,>1B1B *2 

134 DATA >1010,>1010,>1010,>1010 *3 

135 DATA >1010,>1010,>1010,>1010 *4 

136 DATA >1010,>1010,>1010,>1010 *5 

137 DATA >1010,>1010,>1010,>1010 *6 

138 DATA >1010,>1010,>1010,>1F1F *7 

139 DATA >1F1F,>1F1F,>1FF0,>F0F0 *8 

140 DATA >1F1F,MFF1,>FFF1,>F0F0 *9 

141 DATA >1F1F,>1FF1,>F1F0,>F0F0 *10 

142 DATA >1F1F,>1FF1,>F0F0,>F0F0 *1 1 

143 DATA >1F1F,>1FF1,>F0F0,>F0F0 *12 

144 DATA >F0F0,>F0F0,>F0F0,>F0F0 *13 

145 * COLOUR DEF >310 

146 DATA >310,9*8 

147 DATA >0000,>0000,>E010,>1010 *1 

148 DATA >B0B0,>B01B,>1E1B,>1B1B *2 

149 DATA >131B,>1B1B,>1F1F,>1F1F *3 

150 DATA >1F1F,>1F1F,>1F1F,>1F1F *4 

151 DATA >1F1F,>1F1F,>1F1F,>1FF1 *5 

152 DATA >1F1F,>1F1F,>1F1F,>F1F1 *6 

153 DATA >1F1F,>1F1F,>1F10,>F0F0 *7 

154 DATA >FOFO,>FOFO,>FOFO,>FOF0 *3 

155 DATA >FOFO,>FOFO,>FOF0,>F0FO *9 

156 * COLOUR DEF >410 

157 DATA >410,6*8 

158 DATA >1010, >0000,>0000,>0000 *1 

159 DATA >1B10,>1000,>0000,>0000 *2 

160 DATA >1F1F,>1F00,>0000,>0000 *3 

161 , DATA >1FF0,>0000,>0000,>0000 *4 

162 DATA >FOFO,>0000,>0000,>0000 *5 

163 DATA >FOFO,>0000,>0000,>0000 *6 

164 ************************ 

165 * BIT-MAP-MODE SET * 

1 66 ******************** 

167 VDPREG BYTE >02 



168 


3YTE >80 


1 


169 


BYTE >06 


2 


170 


BYTE >FF 


3 


171 


BYTE >03 


4 


172 


BYTE >36 


5 


173 


BYTE >03 


6 


174 


BYTE >03 


7 



Bit map mode 
16K, interupt off, screen off 
Screen image table >180C->1AFF 
Colour table >2000->37FF 
Pattern table >0000->17FF 
Sprite attributes >1B00-^1D7F 
Sprite descriptors >180C->2FFF 
Foregnd trans ' . backgnd black 



175 * Routine to change to bit mapped mode 

176 BMMODE DATA HEXWS, $+2 



177 

178 

179 REGLP 

180 
181 
182 
183 



LI 



VDP bit map recister data 



R1, VDPREG 
L! R2,>7F00 
MOVB *R1+,@>8C02 
A I R2,>0100 
MOVE R2,#>8C02 
C! R2,>8700 
JL REGLP 

184 * Routine to set up VRAM tables 

185 TABLES BLWP @VSBDUP Clear VRAM 

186 DATA 0,0,>2000 

187 Li R2,>300 # of values in screen table 



Page 15 



188 

189 

190 

191 

192 

193 

194 

195 

196 

197 

198 

199 

2.00 

201 

202 

203 

204 

205 

206 

207 

208 

209 

210 

211 

212 

213 

214 

215 

216 

217 

218 

219 

220 

221 

222 

223 

224 

225 

226 

227 

228 

229 

230 

231 

232 

233 

234 

235 

236 

237 

238 

239 

240 

241 

242 

243 

244 

245 

246 

247 



LOOPS 



Li R0,>1800 
BL 6S1VWRT 
CLR R1 

MOVB R1,@>8C00 
Al R1,>0100 
DEC R2 
JNE LOOPS 
BLWP @VSBDUP 
DATA >2000 
DATA >1000 
DATA >1800 
LI R0,>01E2 
BLWP §VWTR 
LI R0,>0706 
BLWP 6VWTR 
RTWP 



* BLWP UTILITIES + 



Screen table location in VRAM 

Start at pattern 
Put value in VRAM 
Screen pattern location 



Colour table VRAM location 

black/transp 

# of colour table values 

Screen on, double size sprite 

DARK RED SCREEN 



** VMEW ** 
VMBW DATA 
BL 
JMP 
** VMBWD ** 
VMBWD DATA 
S1WRTE BL 
VMBWW BL 
S1WBYT MOVB 
NOP 
DEC 
JNE 
Lf Ml 
RTWP 
S1VWRT OR! 
S1VRD LIMI 
SWPB 
51VL0C MOVB 
SWPB 
MOVB 
NOP 
RT 
** VSBW ** 
VSBWD DATA 
MOV 
MOV 
JMP 
DATA 
MOV 
MOV 
BL 
MOVB 
HOP 
LIMI 
RTWP 
** VSBW8 ** 
VSBW8 DATA 
MOV 
SLA 
JMP 
** VWTR ** 



UTILWS,$+2 
6S1 RCLL 
VMBWW 

UTILWS,S1WRTE 

@S1DCLL Get data from call routine 
@S1VWRT Set to write in VDP RAM 
*R1+,@>8C00 Write byte in VDP RAM 



R2 
S1WBYT 

2 



Next byre 
Last byte? 



Set VDP RAM 
write location 



VSBW 

VSBWX 
VSBWW 



R0,>4000 Set to write 


RO Swap for MS? 

RO,;:-"' ". 

RO 

R0,8>8C02 



UTILWS,$+2 

*R14+,R0 

*R14+,R1 

VSBWW 

UT!LWS,$+2 

@2(R13),R1 

*R13,R0 

@S1VWRT 

R1,i>8C00 



SEND LSB R1 TO VDP 

UTILWS,$+2 

@2(R13),R1 

R1,8 

VSBWX 




248 


BYT1 


DATA 


>010u 


249 


VWTR 


DATA 


UTILWS,$+2 


250 




MOV 


*R13,R0 


251 




CB 


6BYT1,R1 


252 




JNE 


VWTRZX 


253 




SWPB 


R1 


254 




MOVB 


R1,§>03D* 


250 


VWTRZX 


MOV 


*R13,RG 


256 




ORi 


R0,>8000 


257 




BL 


€S1VRD 


258 




RTWP 




259 


* REGISTER 


OALL 


260 


SI RCLL 


MOV 


*-iVi 5, RO 


261 




MOV 


@2(R13),R1 


262 




MOV 


@4(R13),R2 


263 




RT 




264 


* DATA 


CALL 




265 


S1DCLL 


MOV 


*R14+,RQ 


266 




MOV 


*914 + ,R1 


?r- 




MOV 


*R14+,R2 


269 


** HCMAK H * 




270 


HCHAR 


DATA 


UTILWS,$+2 


271 




BL 


0S1RCLL 


272 




LI 


R3.1 


273 




JMP 


HCHAPfZ 


11 A 


VG^DiJP 






275 


\A{- U * T-\ , 


DATA 


'jt;lw:-,i-; 



;ame 



(I0(RI 



Get VDP focation 

Get value to write to VDP f 

Get 'Cumber of hy "■■ -. 



278 KCHAPM 


DATA 


'JTILWS,$+2 




279 


MC V 




*#HCHAR f 


280 HCHARB 


BL 


3S1DCLL 


^ADDRESS 


251 


BL 


©S1VWRT 




2^2 U CMARZ 


MOV3 


R1,S>8C0C 




*? ( -, r 


HOP 






■ v p fi 


„ . 1, 


-- 




jticr 


JNE 


HCHARZ 




286 


DEC 


R3 




287 


JNE 


HCHARB 





* DRAW AIRW&.F FROM DOT ROW OCT COLUMN IN R1 * 



239 
290 



292 
293 
294 
295 
296 
297 
298 
299 
300 
301 
302 
303 
304 
305 
306 
307 



WOLF DATA 3UBWS,W0LFY 
WOLFY L! R2,>2C00 

R4,>FF00 

R5,256 

R7,8 

@2(R13),R12 
MOVB R12,R8 

R5,R8 

R12,R2 

R4,R2 

R7,R2 

R3,R9 

R10.CHRDEF 

R6,C0LDEF 



LI 
LI 
LI 

MOV 



MPV 

MOV 

SZC 

MPY 

A 

LI 

LI 



colour base 
mask left byte 

mjn bytes 
nurv. Hytp«s 

R12-ioc 



3 <~OW 

char 



fiS-AODRESS OF ROW 

R2=COLUM NUMBER 
R3=ADDRESS COLUMN 
R9-ADDRESS 
R10=DATA CHARACTER 
R6=DATA COLOUR 



* DRAW CHARACTERS 



Page 16 



'508 


MOV 


*R10+,R4 


R4=NUMBER OF LISTS 


323 




DEC R4 






-•'R1O,R0 


R0-ADDRE3S 


324 




JNE DAVJULF 


3:0 


A 


R9,R0 


MOD ADDRESS 


325 




RTWP 


31 1 


MOV 


*R10+,R2 


R2=NUMBER BYTES 


326 


***************** 


312 


MOV 


R10,R1 




327 


* PROGRAM START * 






? . ■■/''■■■'bW 


::r-AW o.:f character :.;ne 


528 


K *** ************* 


3U 


A 


R2,R10 




329 


START 


LWPI MYREG 


31 l ; * 


::"-.,w colo 


URS 




330 




BLWP 0BMMODE 


~: r 


v.rv.- 


■^Pc^-PO 


RQ-ADDRFSS 


331 




LI R1,>0B0A 






•'■;', "C 


MOD ADDRESS 


332 




3LWP (3W0LF 


318 


A! 


R0,>2000 


ADJUST TO COLOUR TABLE 


333 


LOOPY 


LIMI 2 


319 


MOV 


*R6+,R2 


R2-NUMBER BYTES 


334 




LIMI 


720 


MOV 


R6,R1 




335 




J MP LOOPY 


"^71 


RLWP 


3VMBW 


DRAW ONE CHARACTER LINE 


336 




END 


T'. - 




"2,R6 











Load workspace 

Set bit mapped mode 

Y/X CHAR LOCATION 



4fc|-slin*T* , WK 



.un 7* *»UJ*!^ 



**&& La* ^i*i*f*i FA**'** ^*"*" r « 



HUMi H 



Sid 
£5T 



1 * *--*■*--**-*** *******-***•******-*•* 
11'* * 

■12 * + NORTHERN PIKE + * 

115 *VDP WRIT£ ONLY REGISTERS 

116 NOR DATA 

117 DATA y:i£2 
I 1 ? D-\TA >C~~- 

119 +HCHARS 

120 n4TA 2 

122 DATA * A DDR 
12? DATA >E?00 *CHAR 

'2? :>r.r,\ >&r< 



127 


^CHARACTER DEFINITIONS 




128 


*DARK 


GREEN 


ON LIGHT YELLOW 




"• ?Q 




DATA 


6,112,>0D40 




130 




DATA 


>FFFF, >FFFF, >FFFF, >FFFF 


*A3 


1 31 




DATA 


>FF7B, >DE7F, >EFBA, >EFBB 


+A9 


1 T . ^' 




DATA 


>FF C *- , >EbTr ( >BAF", >EABF 


<AA 


! 3^ 




DATA 


>FFFD, >D7FF, >B7FD, >EFB5 


*A8 


* ~'.i 




DATA 


>- F5F, >F5DF, >7ADF, >FA5 F 


*AC 


135 




DATA 


>6AFF, >5DFF, >77DD, >77DD 


*AD 


136 




DATA 


>FFF1 , >C6C6, >0087, >0FFF 


*AE 


137 




DATA 


>DF9F, >3F7F, >FCFE, >F0FF 


*AF 


138 




DATA 


>EEFF, >EFCB, >0000, >00FF 


*B0 


139 




DATA 


>EAFF, >CFCF, >0000, >00FF 


*B1 


140 




DATA 


>EFFF, >CDD7, >0000, >00FF 


*B2 



141 
142 

143 
144 
145 
^46 
U7 
143 
149 
150 
151 

153 
154 
155 
^56 
157 
158 
159 
160 
161 
162 
163 
164 
165 
166 
167 
168 
169 
170 
171 



DATA >7FDB,>F6O1,>013E,>CO0O *B3 
DATA >77DE,>767E,>0000,>0FFF *B4 
DATA >FFFF,>FFFF,>E3E3,>E3FF *B5 

*CARK GREEN ON DARK BLUE 
DATA 56,>0DC0 

DATA >0000,>0000,>010F,>1F3F *88 
DATA >0001,>073F,>FFFF,>FFFF *39 
DATA >0000,>0000,>0000,>OOFF *3A 
DATA ^OOO^OOOO^OOOO^FFFF *BB 
DATA >FF7F,>O7FF,>FFFF,>7F0O *BC 
DATA >0000, >0000, >0000, >C0FF *BD 
DATA >0100,>F87F,>3F07>>0000 *>?i- 

*BLACK ON DARK BLUE 
DATA 32,>0E00 

DATA >0404,>00O2,>0200,>0000 *C0 
DATA >0080,>8020,>2080,>8828 *C1 
DATA >2000,>0000,>0000,>0000 *C2 
DATA >80A0,>2808,>0405 J >0100 *C3 

*******DATA >0000,>000C,>0118,>C318 *C4 

*******DATA >0000,>D803,>9800,>3000 *C5 

*BLACK ON ORANGE 

DATA 24,>0E40 

DATA >0000,>0000,>0018,>0300 *C8 

, DATA >0000,>3001,>CCOO,>3300 *C9 

DATA >0060,>0098,>0000,>6000 *CA 

*0RANGE ON DARK BLUE 
DATA 88,>0E80 

DATA >0000,>0107,>1F3F,>7FFF *D0 
DATA >0000,>0001,>071F,>7FFF *D1 
DATA >0000,>70F8 J >FCFC,>F8F8 *D2 
DATA >FFFF,>FFFF,>FFFF,>FFFF *D3 



Page 11 



172 DATA >Ft>F0,>C000,>E0F8,>FCFE *D4 

173 DATA >7F3F,>1F03,>0000,>0000 *D5 

174 DATA >FEFE,>FCF8,>F000,>0000 *D6 

175 DATA >0F07,>0000,>0000,>0000 *D7 

176 DATA >EOCO,>0000,>0000,>0000 *D8 

177 DATA >007E,>FFFF,>FFFF,>FFFC *D9 

178 DATA >0000,>FOFO,>FOEO,>0000 *DA 

179 *DARK BLUE ON CYAN 

180 DATA 32,>0F00 

181 DATA >FFFF,>FFFF,>FFFr,>FFFF *E0 

182 DATA >0000,>0000,>0000,>0007 *E1 

183 DATA >0000,>0000,>0010,>78FC *E2 

184 DATA >0000,>0000,>0000,>0000 *E3 

185 *PUT CHARACTERS THERE 

186 DATA 6,32,>20 *ROW # 

187 DATA >E1E2,>E1E2,>E1E2,>E1E2 *2 

188 DATA >E 4 .E2,>E1E2,>E1E2,>E1E2 

189 DATA >E1E2,>E1E2,>E1E2,>E1E2 

190 DATA >E1E2,>E1E2,>E1E2,>E1E2 

191 DATA 10,>6E,>BABB *5 

192 DATA >BBBD,>D0D9,>DAD1,>D2E0 

193 DATA 14,>A9 

194 DATA >B8B9,>B5A8,>A9AA 

195 DATA >ABAD,>ADAC,>ACAA,>D3D4 

196 DATA 14,>C9 

197 DATA >BEBC,>AEAF,>B0B1 

198 DATA >B2B4,>B3C8,>C9CA,>D5D6 
<-■- DATA 10,>EC,>C0C1 

200 DATA >E0C3,>E0E0,>E0D7,>D8E0 

201 DATA 2,>1QD,>C2E0 

202 *SPR!TE DESCRIPTOR BLOCKS +SPR1TE 
20; DATA \ ( 256,>0400 

204 DATA >1F07,>0303,>C307,>070F 

205 DATA >1F3F i >FFFF,>FFFF,>FFFF 

206 DATA >SOCC,>EOFC,>FFFF,>FFFF 

207 DATA >FFFF,>FFFF,>FFFF,>FFFF 

208 DATA >0000,>0000,>0000,>0000 



*6 



*7 



h-e 



209 


DAT 




210 


DATA 


>000D, >0O02^o;: r "■ . ^000 


211 


DATA 


? , vv ,r. ...,-—- . — - -- ■ 


212 


DATA 


_ - . , , . ~ j - . .. ,- 


213 


DATA 


>0 100, >0000, >0OO0, >G0D0 


214 


DATA 


>0080, >6070, >D0D8, >78"/4 


215 


DATA 


>D4 08,>7830 > >0000,>0000 


216 


DATA 


>38F8,>D85E,>5735,>1D0E *' 


217 


DATA 


>0601 > >00C0, >0000, >0000 


213 


DATA 


>0000, >0000, >0080,>C0C0 


219 


DATA 


>AQAO, >EC60, >0000, >0000 


220 


DATA 


>OOOF,>FFFF,>FFFF,>FFFF *? 


221 


DATA 


>FFFF, >FF FF, >FFFF, >FFFF 


222 


DATA 


>40F8, >FFFF, >FFFF, >FF FF 


223 


DATA 


>FFFF, >FFFF, >FFFF, >FFFF 


224 


DATA 


>0000,>80FF,>5FF5,>DF7A *6 


?? t 5 


DATA 


^CFF"-. > rr ~~ „ ;~~?~ , >FE70 


226 


-/,T,\ 


-■■■• ;■ ;C " . jU ' ^ *'"'" ~7' 


2 2 ,' 


DATA 


•>DF :7 A,>5FFF > >r" '.r.^0100 


/„ i. o 


DATA 


>000 r '. ^OOOV - ■/";/': . ;V>P-\ •'"" 


229 


DAT.'- 




230 


DA PA 


/Uwv, s\y*i\j\j t ^tj'JV/'J, -'•'..'IJ'J* - 


231 


DATA 


>0000, >D803, >9CQ0, >300C 


232 


DATA 


>0003,>0030 > >03CO,>0007 *3 


233 


DATA 


>3EC0,>0 n i9 J i0DC3.>000C 


23 A 


DATA 


> v'T/' ■- : ""^" • '.".!", r , „ ,~"T 


235 


DATA 


\r~-r- \'. -.--rw 


236 


-COLORS 




-7 7T 


DATA 


. A . "~ '" . 



24 2 
243 
244 
245 



DATA >?C25,>9CC^>24'^C,>9iOC +5, 
DATA > 1 793 , >980 4 , >2 " * ° > > °CC 1 *^ s 
DATA >DOOO 



-,-A 



ro from page 8 



770 PRINT #lsCHR$(27);CHP*(7 

7>;CHR*C86) 

780 PRINT #1: 

790 PRINT #l-.CHR$(14>j n ""*** 

ONTARIO HYDRO *" w *" 1 

800 PRINT #i:"DATE II 5CHP*':S); 

" # ";CHR$(9); " Read M ;CHft$i. 

9);" Kwh ,, ;CHR$(3); M 3/4" 

810 PRINT #1:" "?CHR*i"'3); 

,, Days ,, ;CHR$(9)j 1 ' -mg "jCHRtC 
9);" Used";CHR*<9); tt Cost: 11 
820 PRINT #1:" ";CHR$(.9>; 
11 ";CHR$<9> ; ,l "- : CHR$ f 'S 

830 GOTO 230 

840 PRINT ttl:D$;CHR$(9>;E;CH 

P* ( 9 "i • P » CHP$ i" 9 > ? K ; CHR$ ( 9 ) ; C 



87o PRINT ttisCHR*' i^>; ,: 
- SUMMARY 

880 PRINT #Is"Kwh n^ddai,i 
4 readings),, .,-. - U :TKW 
890 PRINT ^"Tntil # DAvq ,; 
sed (last 4 rdgs-," ;TE! 
900 PRINT *U"TG!AL l 1PS r <. la- 
st 4 rcigs. ,,,,-«, ; "i", 
910 PRINT #i; ,; 
920 PRINT frl:CHR*a4 1 ; ". - . - . 

CONCLUSION 

930 PRINT #1: "ANNUAL Kwh us^ 
d - . - - . M ;AKWA 

940 PRINT zfl: ,l ;, .■/-. .;?i ■ ■ J v 1 



980 PFIN" 

iO<.«o \:lq"-. 



1020 DATA 2 : - 

0, 38., 92 
1040 DATA : " r 



:d("'7, J ;?!■"• 



EK'E 



Page 15 



DEBUGGING 



Debugger 



I thought the Editor had done it to me again in 
the September issue, AM the Extended SASIC keyed in 
and ran like a dream. 

''\'-s : \ . < "' ; ?.2 Id to myself. "Looks like another 
column Mil have to fake for the magazine." 

And then i tackled tain's ANIMAL program. First, 
I dug out ai! my listings on the animals that had been 
keyed In as single entries, eliminated al! the 
p rc ._ r a nrirT ij r ,. . .^ isgv'in a: 1 t^e DATA intact. 

Then ; removed a! I the END statements from each 
fi!e. (This ! didn't do the first time through). 

Then, fo i low? no Join's. I nstructi ons t assembled 
the whole thing and saved it In memory image format. 



•Now for the program )tsel 



it was summari ly 



keyed In and assembled, and promptly crashed on the 

c >rr,t attempt tc r:;n > + . 

1 r :r:v+ *"e oo*so'e -f £ , py-*- In my Mi n i -Memory , 
2nr j -.^ a ■■■ ■ s-assem:;!er ! !, ave just +o get a lock at 
* u e ::-^^r-^^ -^ -y exoe^slon EAM, ( remember. 



shut 



i e c c n s o ! e 



erase th« 



of ^he expansion RAM, only the pointers to it* 
the m i n i -Memorv di s-assembier because It loads 



4K of RAM In the module and allows me to see 



al 



ontents 
I ike 
n the 
the 



exoans son 

COCSm * ^ 



'-his as 



SAM, as 



i s overwritten by the 



*■*■ th^= ^ 



"acr 



i\na ot the h'gh memory 

rn> n g r.ac ceen loaded. (I am writing 

sat down at the console and did 

the whole crooess took lust over one 



week to complete ) 

Whv was 'r the firsT program *Me loading? * 
'nought occured to ^ie. The program file ANT-KAN 
occupies 33 sectors . A b'' of qu I ok mu 1 1 id Meat ion 
told me that 3443 bytes make lid 33 sectors* Out came 
the HEX-DEC converter. Turns out, the buffer needed 
in the VDP PAB Is >21CC, 

Those BITty GREMLINS had 3t^ uc k again! 

I hed further problems getting the program to 
run, but they were of my own creation. in the throes 
of debugging it, i made some rather extensive changes 
to cor- 7 -:rr: r A the program, and inadvertently left out 
necessary oedinci* Put that was mv problem ( and the 
bu I k of that week ^c< debua it ) . 

. ■' "■ : -"^d '-ve :ame orrblem ! did, jus + change 
Mne 315 of the oubllshed program to DATA >2100, and 
it should work fine. 

One of the changes I made may interest the group, 
ss I 'assembled all the files and have, currently, 13 
animals appearing on screen. 




I # 



* w 



: PH*l*W 



Page 



Assemble the ANT-KAN file as lain suggests, aru 
assemble the iNS-ZEB file as follows; 

DEF SLOAD,SFIRST,$LAST 
SLOAD 

SFIRST B 6START 
START COPY M DSK1.INSS" 

COPY "DSK1.JACS" 

COPY "DSK1.KANS" 

COPY "DSK1.LI0S" 

COPY "DSK1.ZEBS" 
SLAST END 

Now, you will have to make some changes to the 
program to read the files. Lines 50 to 67 are fine as 
published. Starting at line 68, youMi have to set 
some new pointers to read the current files* Change 
line 68 to point to >C4B0, line 70 to point to >C6EE, 
line 72 to point to >CAFE, and line 74 to >CE26. ( at 
least that's where the files start on my system, Uso 
Ti's DEBUG program to inspect memory locations near 
these to find the start points on your system. ) Or, 
if you are worried that the DEBUG program may 
overwrite some of the data, use a dis-assembler that 
wi I I load and run in BASIC as it wi II load in VDP RAM, 
and will allow you to view expansion RAM undisturbed. 

The beginning of each DATA file will loof 
something If ke this; 

0000 
01 E0 
070X - X being a different num. each file 

This way, each month there is a new file, include: 
It between the LI0S and ZEBS files, the Lion file ends 
at >CE24, thus >CE26 is the start of the new file. 
Just go in to find the start of the ZEBS file, change 
the program to suit, and as long as lain includes the 

19 Continued on page 2 




By Wayne Anderson 



FAIRWARE 



Fairware, also called Freeware and Shareware, is 
a fascinating concept. Software authors, most of whom 
are not "professional" programmers and who created 
their works because of a lack of software for their 
own use, distribute their materia! to a I I other users 
essentially free of charge . They rely on the honesty 
of the persons receiving and using their programs to 
compensate them for the many hours of work In 
providing something useful to the computing community, 
Some suggest a fee that they believe is appropriate 
while others leave us to decide what the material is 
worth. 

How many of us take the time to thank -hese 
people for their time and effort. "Not many" see~'„ *o 
be the answer. The long-term cost of this at +:i -jc> 
very likely will be that these talented people wi i I 
not bother to share their talent with us. And where 
would we be then? I appreciate the opportunity +o test 
software before buying. Too often I have paid the $15 
to $60 for commercial software and found it inferior 
to the Fairware in my library. 

In an effort to encourage Shareware au+hors to 
continue their support of the Tl many user grouos Have 
begun collections at their meetings. Channel 99 has 
done the same. The monies are sent to the various 
programmers who very often have shown their 
appreciation by sending us updates or new programs* 

The usefulness of some of this Fairware dictates 
that the small donation made at the meetings is not 

enough! Why not write the author and say "Your 

efforts are real ly worthwhi le. Please continue.". 
Include a few dollars along with the letter. Mm sure 
we wi II all benefit. 

There are several Fairware Items in the Channel 
99 library. We are attempting to increase the number 
so that everyone has access to this excellent 
material . 

These titles are avatlable:- 

c99 Compiler by Clint Pulley 

A0196-SAF/1/2 

Disk Manager 1000 by Bruce Caron et ai 

A0U4-SAF 

FAS-Tran by Bill Harms 

E0195-SAF/1/2 

Funlwriter by Tony and Wi M McGovern 

A0143-SAF/DISK 



Neat fist by Danny Michael 
A0091-SAF 

Gcreendump by Danny Michael 
A0092-SAF 

Super CaT by Lar^y Duke and Scott 5e< 
A0194-SAF 

TI99-0P0LY bv Ross Minnie 



AM programs may be ordered from the Lib-v: 



from Tom A^ r "' 



a+ +-h, 



"*;t: ri-*- i r) r 



PROGRAM REVIEW FUNLWRITER V 3.3 
One -:ie fce~r .;.^>:^ :.- c z : .rvtzr? ava i I a? i r- '■ 
Funlwriter, written oy a pair of Australians, Tony and 
Wi M McGovern, This is by far the most versatile 
program available for the T.I. It allows you to use 
T.I, Writer and the Editor/Assembler without the 



command modules. 
popular p^ocram, , 
sector reader/ed Iter 
our own I I nt p u \ fey 



Isk '^anaco^ '.000, another ver" 
also inciucec as well as a Cis<< 
a For+h loader and o-Como'ier by 
To T.ake use or this ornqr^n you 
need a console, 32K memory s and one disk drive, i * is 
also very helpful to have a second disk dr\ve and a 
printer. 

There arp si x ■;: n -c ;j ;^e n x a t I o n f ? ! es i n c ! u C ed w n I c !\ 
ihcu'd be Dr<r*-^c ^ ,^ ':s : ne T.I. Wrj+er sr.c. .-ead 

oack—jp • - ■■ -. " ". - ' i.i- ■ - - .:. -. -, - ■-.-.? ; - • - -. - , : - : . 
place. 

Examining the lead oror-ram will reveal *he i*.ne$ 
necessary *cr r^^p.-z ' pc *-" T nn;s w * ~h • n mjp ! yr 1 4 ? r '. Li ~e 
120 controls ^e ~n!su~- ;- ~n-= 3^-~ee n a^o : - • — t 
Lines l? r 3rd MO -;e" -Je-'au^^ re* -ie pri^re~ ~yce.. 
either para i ! e' c^ se~ :a ; ou^^'j**. Lines v^o-'^O ^a^ 

be used ^?r e^*e" : "-" -'"'•:- -a~e^ *' -- — *-':'- ■.-■;„ 

won 3 ^ like on + ~-e User's L-s^. Lines 2-0-2^0 ccr.~ -:",*■ 
the load comma ncs fo*~ ^he User's List pre crams. 0c 
NOT RESec^e^? ^h» Load prcrjram hecause * * w: ! I s^ 
destrovc . 

* r K <? - " r -. ? -^ ?cr:t -a' f- j ^ -■"■*; Tie - .- c" ~he ~c~*een ask? - ~o 
"to choose "" i-Wr • te~, E c : *rr -"^sse*nb 1 er or ^h^ User - 
L : s"*"* if ^co; ^t!'--* " i -*~ r " ' , , v ""-'■.: ,-/"'' n~ 
cisp'iayed. This show? <-'-<;- ^i'or, "--J ."-ratter, 0M H . ZOO, 
Utility, Switch and Rese^. Selecting 5w : tch chances 
the menu so that option 2 reads c-Compiler. Selecting 
Swi + ch aga'n chances oction 2 ^r Mcds^, "**hen to Disk 
Ed i t a no then to Assemb I e^. 

Press ; ng Pese + stores +t ie name of """he * ? le you 
are currently working w:t* i =~ memory so that if you 
use one of the other u+ i ! i * I^s on -*-ho d ' sk t^r- — ■ - 
to either the p-;*^— -~ t( -^ "--,?■-' ■;.■■' -- 
wll! De : nc!uded . - 1 -"•*-> ^r: ■' ?~ : - r s "" . 

Utility, option 4 displays five various assemblv 
file loaders . 

Option 1 will toad various T!-Wr:ter utilities 
such as sneil check programs. 

Opti en 2 sets up a GPL environment for load! no 

T> ^ . .. '0 o n 1 1 n u e d on p a g e ^ ? 

Page £(J 



c 



by 

David Storey 



As i promised last month ! will be 'fa iking about 
the l WHILE] statement. But before we continue with 
the game we wilt have to understand more about the 
C-BASIO control commands. In normal BASIC we have: 

MF-THEN-ELSE/FOR-NEXT-STEP/GOTO and GOSUBK 

Mi C-dASIC we have: 
LOOPS = for - while ~ do 
DECISION and CHOICE - if - else - switch 
JUMPS - break - continue NOTE:- goto >s not 
supported in c99c» 



discuss the [while] loop. 

rooeat- 



Th is month we w? 

Keyword ■= whi le. 

The white statement creates a loop that 

/ * ******** ****************/ 

/ * c 9 9 c c - bas i c comp Her * / 
/* The while statment */ 
/* by David Storey, */ 
/******* ^ ************** * * * / 



until the test expression becomes false or zero. 

Let's start with a short program segment that 
goes through two loops five times each. Each time 
through both loop it wIM print "Number" and a number 
that represents the number of times it has been 
through tne loop, Following that it wIM prirt either 
"Hrst while loop" or "Second while ioco/' 

The first while loop increments the column that 
the line is being printed on each time through the 
loop. When if exits the loop it will print "End of 
First White loop." The second ioop does the same thin? 
except it will decrement the column it prin+s on each 
time through the loop. When "\ f exits that loop i *- 
will print "End of Second While Loop"* 
The program looks HWe this: 



• * * k t * r * t k * k 



# a s m 

R E F P R I N T F 
#endasm 



/ - scare or asse rot I e r c od e * /' 

/* place print£ in ref table*/ 

/* end of assmblr & cont.with 

/* start of main */ 



z -hi 



co im= < ; 

locate t r ow, cc lm) ; 

^ I rn ~ H * 

wh * . : e ' cv ] r. • »■ - ■ > ; 



' * rnar;o r v w : * 

/ * iwake column -3 */' 
/* place curse: at row colm * 

/ * -pf- rim t ^ ~ o r ^ * ' 



i ocate >; t + row, co 1m} ; 



i: Lri-t W I 



X e 



~ ' !T! i ' c 1 r *" o n ^ v "t i n ha?> * r* A 



print! ("Number %d Second While Loop" , f + 1 im j ; 
locate { + + row,, colm) ; 

locate { 20 , 8 ) ; 

r^t~("End of Second While Loop \n" ) ; 
• /* end of main 

Page 21 



You will have noticed some new statements that 
were not used last month and they are :- #asm 
#endasm 
REF 

PRINTF 

First, the #asm and #endasm go together. These 
two commands i et you use assemb ! er code d i rect ! y 
within your C-BAS1C program. I used them to place a 
REF PRINTF in the program. This allows us to use the 
statement PRINTF which you have to load and run with 
your program and CSUP, When using #asm - #enciasm the 
spacing of the assembler code between these two 
statements is very important. You will notice that 
there is a space before REF PRINTF, this is required* 
If there is no space the compiler places the REF 
statement in the wrong column which will result in an 
error. So look out for this in future listings. The 
PRINTF file is on the same disk as your c99c compiler. 
The file gives you the ability to print a strinq 
with a variable within the printed $tr\ng> 11 you 
take a look at the PRINTF statement in the li sting you 
will notice the l%6)» This Is where the variable 
[tim] is placed in the string. At the end of the 
string you will see the variable to be printed. You 
can have more than one variable in one PRINTF 
statement. This is how you could do it: 
orintf ("string %d string %d str? no", var i 1 , vari 1 ) ; The 
first variable would appear st -She *irst [%c]; 4 ne 
second variable would appear a + the record [*<.:". 
Hera is a list of the C-8ASIC ident: x :^rs, 
IDENTIFIER OUTPU T 

%d dec i ma I i ntecer 

%c a single character 

%s character string 

%u unsigned decimal integer 

%o unsigned octal Integer 

%x unsigned hexadecimal intpc^ 

The general form of the while loop is:- 
wh j !e(express (on) 
statement 

/ft************************/ 

/* c9'Jc c-basic compiler * -' 

: * The wh J J e r- 1 a r j'ne n t- * 
/ * by David Suorey . * ■ 

/* LOAD WITH: - CSUP * ,' 
/* PRINTF */ 



The expression can he a mu ! ititude of things. As 
you can see in the program we are using a variable 
incrementing it, then checking to see if it is less 

than Q - „ The expression can be mere comoiex or it can 
be very simple as in ^he second program. In the 
second program 1 have used an endless while loop to 
keep the program running until a certain key is 
depressed. 

When you construct a while loop, it must fnc ; ;c~ 
someth t ng that changes the va 1 ue of the test 
expression so that the expression eventually becomes 
false. Otherwise, Mke in the second program, the 
ioop '-.n ! y ends when FCTN 4 is hit. 

Let's look ar a fragment of a program:- 

times=1 ; 
whi le( times < 3) 
ou+sC'hel lo * n"); 
Th is fragment win pr i nt "he 1 \ ~« | ndef in t tely 
because noth * nc in The :orp chances. ~'~>e value of 
Timer; \ '■ always less than p . . 'lo we -ave to sh.ar.ne ~^e 
value of tirr-er. like th ( re- 
times ^ 1 ; 
wh i !e( — t i.nes ^ ° ) 
puts' "he ' J s * n») ; 

""his f "GC^O" 1 "" • -^ ;->'- ^ rx t + >- r. ■ -* .>& ^ z - '■ ^o<- # "- y 

fj <» ^ t- o ™ ^ ^ -*■- ' n ,~ *- : •.»' T x *" : S \~~ ' ' ' •■ \ '' ■' ". C as *' h O 

have the c ar"e r o r !j 1 "" ^^ —'~ri -" r-j--*- ■<• — ^ .- — - ,- - * • - — 



■ ne t ; r$t raome^. ~o wc:* v it S' 

- "mes^l ; 
w h 1 1 e r ' "** i ^ e s ■*■ ■*■ ^ '"*■ "■ 
pu + s( ? 'he Mo * l n ff ; ; 
Now we a~e ; ^cre^ent ' nc 
tha + " **" r s va'ue wi' f at some^^T'™ 
The second 1 i st ! «q is en • \ z '■ '. 



1 ne n : s : - 



■ne 1 n.s^esc 



rp^H -» + 



, PC, 



* >e C"?vr* e^* ,, ' t ~ ■"■res 



wafts 



to scan the keyboard. !* the space bar is r--essec ^^e 
program returns to the beg inn fnc, I r -CTH d i* 
pressed x! ip program returns tc + he c'^^o end sc^ee^, 

LnTer these short!es# o : d\ q^c-j^'-"': with th** va 1 ues 



vcu a star~ ci"c : , .,?^~ 
statement and con^ir 



o>\ a • 



/* place print ii i ft r.ef tab. 



lasm 

REF PRINTF 

ffenddsm - ■ ■ ■>-.-. v; ■ J ■: 

ma j n f ^ - . * , . - f - - ,-■ - - 

i whilo( 1) 
i int. x. ow, cr> i m, c , M n: ; ' ■" : -^ : .1- . •-- •- L -, •• ^.. « .- 

putchar(12); /* clear screen home curser*/ 

locate (2,7); /* place curser at r ow2 column 

puts("Press Space Bar to Continue."); /* lust like prii 
locate (3/1) ; 

puts( "FCTN 4 TO END . " ) ; 

Page SB 



gotchar ( ) ; 
do J. 1 ( ) ; 



/* yet Input from keyboard */ 
/* scan keyboard */ 



colm-3; 

locate irow^colm) ; 
tim=0; 
wiii le ( colm++ < 8 ) 



/ * ma k e column =3 * / 

/* place curser at row colm */ 



/* set tim to zero */ 

/* start while Ip chcks if colm<8 */ 
■' i: yos mi 'Uu:i;U^h loop, inci::i;iit Ci.. u tu ■'*,■ 
pr intf ( "Number %d First While loop" , ++tim) ; /* prnt While lp # */ 
locate ( ++ row, colm) ; 



1 



similar, to next in basic */ 



locate ( 11,9 ) ; 

puts ( "End of First While loop "); 



whi le ( colm--> 2 ) 
{ 

rj r \ r> t f ( M N umb^r % d S ^ c o r\ d Wh ] 1 e F . o o p M , f + t Im! ; 

""-: " ■ ■ ( ' !- r ow, co irr. ) ; 

locate (20 ,8 ) ; 

puts ("End of Second While Loop \n"/; 

getchar(); /* get input from keyboard */ 

poil(); /* scan keyboard */ 



*nt" 



Check it out from page 6 

260 IF D*= ,,H THEN DISPLAY AT 
<.20,i.>s ,, Date?" :: ACCEPT AT* 
20,8) :D$ :: IF D%= u " THEN D$ 

270 DISPLAY ATC5, 1) s "PRESS 

"G !t : : : '" 1 Update accou 
' ~: onci le st extern 
J ^JU '.save data 
4 ,,,, HELF ,,,,,! - 
280 GOSUB 720 :i IF K<49 OR 
K>52 THEN 230 ELSE ON K-48 G 
GT0 460,^0,300,290 

30*- IF F^-.:>"2" THEN 450 ELSE 

CALL HCH ARC 2, 1,32,23*32?:: 
DISPLAY AT<4, l>:"Save data? 

y/n V" 
310 DISPLAY AT(£,U:"Data wi 
II be lost otherwise." 
320 ACCEPT AT(4,2U>SI2E*'~'!M? 
EEP VALIDATE f * ,, YN !, );Y$ 
330 IF Y$-"Y" n\EU 350 ELSE 
■420 

340 DISPLAY AT t.4, i>: "Insert 
data disk or tape and pre 
55 any key, . » H 
350 CALL KEYC0,K,S>:: IF S=0 

360 IF K=15 THEN 350 ELSE DI 



SPL A Y AT ( 8 , 1 - l : " En t er f i 1 en am 
e ,, :' , DSKi.r1 v FILE ,l :: DISPLAY 
AT' '12, 1): "Enter a blank file 
name t o ret ur n t o menu - !i 
370 ACCEPT AT'3 5 l;SIZE(-I5)B 
EEP:FN* 

3S0 IF FN$="" THEN 32767 
-or- hpc;k; $\ ;F'r-j$ r IN^-^'MA! „ . hut 

400 PRINT #1;NR : s FOR I~i T 
Q NR :: PRINT #1 ; ACN*U ) , CBA 
L*tI) F DATE*U>:: NEXT I 

4i : close t*i 

H-3'l.-' 2'i^3pUH. T AT ' i--» 1 ' LKAcSL. »"!i- 

L BEEP: "QUIT, . .Are you ^ur^ 1 
Y/N N" : : ACCEPT AT t 1.2,27) 
SI2E<-1):Q* 

440 IF Q$="Y" THEN CALL CLEA 
R : i STCP ELSE SOTO 250 
450 D I SPLAY AT a 2 , 1 > ERASE AL 
L BEEP: "Nothing to bave. . . " 
: : CALL D'.250.>: : GOTO 430 ■ 
460 ON ERROR 1240 :: GOSUB 7 
20 ;: DISPLAY ATf4, i) : "PRESS 

TO" 
470 DISPLAY AT(7,5):"1 Load 

data from 11 sTAB(B); "tape or 
di=k":TAB(5)TTABf5); "2Add nr 
d* \*zr: account" 

Page 23 



480 DISPLAY ATCI0,5>:"3 Upd- 
ate accounts" 4 Return 
to mam menu": " (QUIT- 

490 GOSUB 720 :: IF K<49 OR 

K>52 THEN 490 ELSE ON K~4S £ 
OTG 500,790,550,250 

*j % -:*?- i.r ;*- : >-*iiz.vi .■•■<-.•— -'„r. 

AGE : i GOTO 460 
510 CALL HCHAR(2, 1,32,736) : : 
DISPLAY ATC5, H:" Filename? 
DSKl.rtYFILE":"" :; DISPLAY A 
TC12, 1): "Enter a blank filer 
(Me to ret*. : r j*. z : me-'-*. , " 

L>xlU ALL-EP t H i ■ v; ? «. A •■ iiUi_! w JL *ll 

i'-15.J:FN$ ;: ;F*FN$- ,,i: THEN 

4&0 

530 OPEN #1 : FN*, INTERNAL, INr 

UT .FIXED :: INPUT #1;A* :: 

IF A$= H CHECKDATA n THEN 540 [ 

LSE CALL MESSAGES :: CLOSE * 

1 : : GOTO 250 

540 INPUT #1:NR :: FOR 1=1 1 

NR :: INPUT #1: ACN* < I > ; CBA 

L*(I) f DATE*(I):: NEXT I:: CL 

OSE #1 :: F$- n l" 

550 IF F*= ,, 0" THEN CALL MESS 

AGE2 n GOTO 460 ELSE GOSUB 

730 

To be continued next mont 




CLUBPAGE 



By Tor Hansen 



Tom Arnold opened the September session of the 
User's Group with a quick summary of the financial 
situation the group is in. Included was a rather 
terse message to the membership to purchase more from 
the Club library, as December looks like a rather 
lean month. To keep the group out of the red, 
members must purchase more from the library. Come on 
people, there must be something in there that you 
like! 

There were almost forty people at this session, 
and they witnessed 4 fuM systems and one 
more-than-fu M system. Mere on this one iater. 

Tom didn't have any new "Fa!rware !t \o offer this 
month . Unfortunate I y . 

What Tom has been doing at previous sessions has 
been to ask for a donation, contributed later, as no 
money may change hands at the Spectator, for the 
"Fa i rware" of the month . Th i s money has been 
forwarded to the people who create the software +hs**~ 
we a! ! enjoy, 

A more-than-wcrthy cause' Question, ^cw many 
of you who have gained from this practice have sent 
some financial consideration to the source of +-his 
practice? (i.e. YCUR CLUB) 

Tom has been going out of his way to make this 
ail available to you, THE MEMBER, Please, remember 
the source, and include it In your cons irierati cos . 
The Club has to survive, too. 



CLUB NEWS 



with the new hardware for our machines. ( This is 
what i was alluding to earlier ). 

He nas » new set of hardware for our machines 
that seem to do almost the same as the new Myarc 
equipment. 

i was too rushed to get all the details. Talk 
to Malcolm, ; 3s ! think he got mere out of this than 1 
did. 

Don't forget that December is election month. 
Make sure you show up to nominate and elect your 
executive committee for 1987, 

Also don't forget that for most of you December 
is the last month you are paid ud for receiving this 
publication. in the new year you will be on your own 
to arrange for thts publication. 

Th i r.cs are ; ar f ^cm desc w ith our systems . 
Malcolm has new software available in his store, and 
there is the promise o 4 more to come. 

Stay tuned fnr more c*evei contents. 



1986 CLUB MEETING BA^ES 



^rlday 10 January ~? 

'day :Ji "ebruarv "- 

N'ar^.h "r 

aay 25 A or i ! 7 r 



'■ -' -*~ t u 



J day 23 M av 

" d ?) 7 ~ " J :_; ■", O 

i C a 7 2 1 J u ; 7 
iday 22 August 



Friday 19 September 
Friday 24 October 
Friday 21 November 
Friday 19 December 



Ail meetings are heic f^cm 7 C .M. ^c 10 P.M. 
"WHC'S-WHC" 



CHANNEL c ? -JSERS GROUP NiMiL'GN. 



; ,.^K_^c: 7 ; ; 



By Tor Hansen 



:-none [ ** ; c 



387-1295 



Ciinr Pulley has t>een ;;;vn«c "o a T. -esr :n 
Chicago thfs November ( as you read this column ). 

There, he will deliver a speech dealing with the 
details surrounding the creation of his n c" Compiler. 
The membership gets to hear this speech in October, 
and, I for one, am looking forward to hearing It. 

Clint had a prototype of the new Myarc Compute-* « 
Geneve, running at this session. ( not the one i 
al luded to earl ier } , 

The LINES program indeed danced across """he 
screen in a highly accelerated version of the T! 
program we are aM used to, T'b f <?;".■:>'-:"■-■ ~o '^ j 
function of the VDP processor more than the CPU. \f 
seems with the new processor, all you have to do is 
define the start and stop oositions for the line, and 
the chip will do the rest. The original LINES 
program draws the whole line. 

Mr. Gil Tennant from New Horizons was present 



Malcolm Johnson. ..... ,cncne (4' 

TREASURER AND CHIEF LIBRARIAN 
Tom BaccMni phone M' 

CHANNEL 99 LIBRARY 

C0P0LA CHAIRMAN 

Wavne Anderson. ...... ,ch^ne 



6) 528-5756 
6} 734-9958 



TUB PAGE 
Tor Han<;pr 



Any and al! written cemmunicati 

be addressed to: 

CHANNEL 99 HAMILTON 

P.O. BOX 1005 Station 'A* 

HAMILTON ONTARIO 

CANADA I SN 3P1 



19) 632-7329 

!£> ? 79-04 ■*-? 
ons should 



n 



THE INCREDIBLE 



Play with Sparky from page 7 



by Tom Arnoid 



SHRINKING 
PROGRAM 



How wou I d you i I ke +o wr I te a program that 
shrinks as you write it? ! have found a way to do 
this! However before you get too excited I must warn 
you that it won't do you any good as this method Is 
caused by a f!aw In the language* Maybe 1 should 
begin at the beginning, 1 had written a program which 
f though might be a good program to show the merits of 
Myarc XBIi. i loaded the program into the computer 
and started to edit it to conform to the Myarc XBM 
version <\1 . After several hours of revisions my 
computer spoke to me, "OUT OF MEMORY" i tried to 
re-edlt it but it wouldn't let me. f saved the 
program to disk and tried to run it, Mc go! Size 
indicated that there was only about 600 bytes left 
(ai I SIZE commands are estimates as I didn't keep 
track). In desperation I deleted a!? the REM's. 
Still no luck, in fact the program size did not eve-' 
shrink. Now i was really desperate so i deleted 
whole large subroutine, Size was almost the same. : 
then saved to disk and noticed that the number 
sectors used was 97? J I was saving into Ram 3*sk ~o 
you can CALL PDOIR to see the catalog, ! now r-e& ! ' zed 
that the system to keep track ot progran s I - e ' s 
defective in version 2,1 of the Myarc XBM, 

i now loaded Tl XB and loaded the program ' ntc 
if, SiZE Indicated that the program had now shrunk +c 



an expected level* 



ioaded this I n+o the Myarc 



and did some more editing. Each time I looked at the 
SIZE, The program grows as you make changes, any 
change at all! Thinking there must be a simple * j ay of 
-?r ! /.~c -'" i s ercbien ! sa/ed '^e prog-am ' " ^T ~'3C 
fe^ma+. After typing NEW \ loadec ^he MERGED prcjrs v u 
'"HIE was ~ow what It would be in T! XB, A solution!! 
Your fine; program version should be saved in ME^.?E 
format , loaded using MERGE and then saved normally. 
This wi i i give you a norma! sized and runable program. 

Now I haven't mentioned the shrinking program yet 
you ask? We!! I inadvertent!/ MERGED the program on 
it-self Instead of typing NEW first. When I sized the 
program 1 1 was severe $ thousand sectors ! ower than 
normal! ! realized this and decided to MERGE it Into 
itself again and again. After three or four merges, f 
can't remember the exact number, the program shrunk to 
880 bytes! I didn't try to go lower. However this 27K 
program norma! !y would take up abou + 45 sectors on the 
disk. When f saved the 880 byte version It took up 97 
sectors! 

What have I learned from all this? Mainly that 
the Myarc XBM is flawed but there is a way to 
overcome it. Either save till programs in MERGE format 
and then reload and save using SAVE or save your final 
version and reload into Tl XB and resave in that 
lanqucsge. Both methods wtl i reset the program to It's 
proper size. 



jump must be made before the end of the pad or even 
from the far end- To achieve high scores on this game 
takes a lot of practice. 1 have found several 
patterns that will complete the levels fairly quickly 
but no one pattern on any level that makes a great 
deal of difference. 

I have reached level 8 but ne^/er completed it as 
there Is usually only one man left when I arrive. I 
consider any score o\/er 30,000 as being okay. 

There is only one thing in MINER 2049er that 
bores me and that as usual is the theme song as Bob 
sets up the Title screen and goes through the short 
Demo Mode. Everything else is top rate. The graphics 
are good and there are no surprises popping out of the 
hat at unexpected times to upset your carefully laid 
plans. MINER 2049er sucks you in and forces you to 
continue striving for a new high score. 

So there, now you have a target to shoot at. 
Remember to send in your high scores. Support them 
with a photo or negative because every so often the 
high scores will be given in the Mali of Fame. 

Send in your own review - tell us what you like 
or don't like about any of the arcade style games - 
send <n + ips on strategy - suggest games that ycu 
would like to see reviewed. 

The computer industry has a saying G1G0 

(garbage in, garbage out. ) Computer Ciub magazines 

have another NINO (no input,, no output.) Dus+ off 

your wo^d processor or heaven forbid, use a pencil and 
paper and let's hear from those games players out 
there . 

Copola from page 20 

■:d- I op t Is SUN PROGRAM r ; LE f rom the 
Ed i tor/Assembler, 

Option 4 is LOAD AND RUN also from the 
Editor/Assembler. 

Option 5 allows immediate re-entry to a program 

without reloading it 

One cf the most Impressive parts of the program 

Is fhe User's List, it contains Doatch .a disk sector 
reader and Ti -Forth, a Forth loader which still 
requires Forth. it a i so comes ready to load the My?rc 
DM, If you have it connected to your system. Another 
five utilities can be added to the list, an6 programs 
on the list can be changed at any time by changinc the 
LOAD program. 

This is truly a fine piece of software so let's 
see that Its writers are compensated for their o^eat 
work on this program • 
Review 

1i Mark H Max. IT 
Ease of Use f 9 T 10 t 
Performance IT 10 IT 10 11 
Documentation H 8 H 10 H 
Over-a! ! Value IT 10 IT 10 If 
Genera! impression H 9 U 10 *I 



Page 25 



Total 



ir 46 



50 Ti 



END 



OPTION 3 

by 
V.C. MacArthur 




I have recently undergone a change of jobs. Some 
might call it a promotion, while others would just 
stand aside and snicker. 

But this change has engendered a completely new 
problem with my programming! And maybe I am beginning 
to understand why a lot of you are not responding to 
this, and other columns in this magazine. 

It's the problem of time. 

If you have a tough and demanding job (as I now 
have), you have hardly enough time to sit and enjoy 
your own diversions with this accursed machine. And 
once a month, you get your issue, and dutifuiiy type 
in the programs, run them, and, hopefully, enjoy them. 

But you don't have the TIME to send us your 
reactions. 

How do you spend your valuable time with your 
computer? How do you FIND time to spend with this 
domineering machine? 

: try to split my time between d faying, and 
programming. After all, no play and al! work etc. 1 

But most Importantly, ! try to ENJOY my macr'ne. 
And the simple fact is that i enjoy writing ^h l 3 
:c!umn! 

Even if ncbcdy reads me, ! will sti ' ' erj re- 
contributing to this project. .Because, for me, i + 1 3 
part of the fun cf owning a tcy that can perform so 
many marvelous and magical functions. 

If you don't have the time to send us a ncte, I 
promise to stop yelling at you. However, if vou can, 
even if you give Tor or myself a disk file at the 
meet i ngs, (when, of course, I have the time tc attend 
them!), then maybe you, as well, can fee! a new 
enjoyment. 

The enjoyment of pulling your weight. The 
enjoyment of contributing. The enjoyment of putting 
your own mark on this club, and indeed, the world wide 
club of TI/99 owners. Don't be intimidated. Don't 
think your stuff has to be perfect the first time 
around . 

That's what editors are for! 

Even if you're working on a program that isn !+ 
running properly, give us a copy! Even if you don'+ 
want it publ ished! ! ! 

We are supposed tc be the experts! 

We want to help you learn how to program 
' better. 

We want to help you to enjoy your machine to the 
fullest. 

No matter how much time it takes! 



DON'T TAKE IT APART 



! had a problem with my ss/sd disk drive system 
recently that was a little strange to say the least.lt 
would read well, it would write fine, but it wo*;) :n ! r 
initialize my di sks. Perhaps one time in ten, it would 
work. Usually 1 would get a "NO DISK IN DRIVE" error 
reading. 

After much fiddling about and frustration I 
decided to give everything a good cleaning. As soon 
as I got the metal cover off I could see the -^obi^m. 
One of the tiny leads on the light emitting diode tha* 
beams through the hole in the floppy disks was broken. 
The connector a pinch type of thing, war. holding f he 
broken lead in a manner that allowed it to cor^acf-, 
sometimes . 

That should have been ail there is to this story, 
however I didn't know that you could easily pop out 
the diode and pop in another one. MR. FIX IT had to 
disassemble the door mechanism. I n r eassembllng it, 
something got FOULED UP. Now my '.irive Is in for 
repairs. 

What should have been a five minute and $".£0 
repair is now going to be something quite different. 

I hope I have helped someone out there who may 
have had the same problem with the!" drive, and I ^cpe 
also they learr. from my mistake ana fix their's +-^e 
easy way . 

By the way, the diode was obtained ^cn i^v-C 
ELECTRONICS, 4190 Fafrview Ave. Burl ingtcn, 
Ph,632-4345(Good people). Cost, about $2.00. 

Big program from page 5 

710 CALL DELSPRITEC#2,#3,#4) 
: : CALL SOUND (-700,, -8,0) : : S 
CQRE=SC0RE+2Q :: HIT=HIT+i 
720 IF HIT^5 THEN 800 
730 RETURN 

740 DISPLAY AT(10 T l»: a HE - 
0T YOU. 

750 CALL SOUND (- 1 000,1 1 0,0. > 
760 CALL DELSPRITE(ALL) 
770 FOR L00P-1 TO 2000 
XT LOOP 

780 MEN=MEN--1 s : IF nEN 
HEN 250 

790 CALL CLEAR ; s PRINT 
SORRY BUT ALL YOUR MEN 
DEAD, " 
800 DISPLAY ft i 1. lO, 1 ,< : '" 
DBY FOR YOUR SCOPE" : : 1 
DELSPRITE(.ALL) 

810 OPEN tti^DSU-SCORE/REC" 
820 PRINT #1 :HSE: SCORE: MEN: N 
AME$ 

G30 CLOSE ttt 
8*10 RUN "DSKi , SC-\"APD" 



NE 



"I'M 
ARE 

ALL 



'age 26 



UH-OH 



by 
Ron Marissen 



meeting i found something that is incompatible with my 
16 bit memory., .sort of. It seems that Mechatron ics' 
Extended Basic graphics routines don't work correctly, 
i can only guess that the routines, which work fine 
with my console and a 32K card, don't allow time 
enough for the VDP to respond correctly. I assume 
fhat the routines use Bit Map mode and maybe the VDP 
responds slower when in this mode. ! f ve tried things 
such as T I -Artist, Graphx, and numerous games (my kids 
play them, not me), and have had no problem. Maybe 
someone with more savvy could enlighten me - remember, 
i ! m no expert,, 

There are a few other things I have tried since 
m/ last submission fhnt I wl i ' .'^'.\>u>u mow. 

1-1 plugged a speech synthesizer into my console 
and powered up, I guess that it truly is too much of 
a load on the 5 volt supply as all I got was a blank 
screen. I have a fix for that i :i the back of my mind 



: o u n n , 



2-Speaking of speech (cute eh?), I had the fei low 
from Toronto, who's name escapes me, hook up to his 
P-E box wh 'ch md a Tr ip ! s-Tech czrd In it . The 
speech seemed to work OK with tne 1c bit memory, Th t ? 



share it with the Tl community. Pm sure that if 
anyone has the nerve to try it, they will be very 
happy. 

The memory runs tape based M/L urograms fine, or 
cj. least the ones I've tried (ail me ones in The 
Smart Programmer and Micropendium). You just have to 
be patient while loading them. 

I have a number of other ideas in the back of my 
mind that i am going to investigate over the winter (I 
hope!), and if successful, you'll be the second to 
know, I just wish i was a little more knowledgeable 
in tin's field.., it's fascinating* 

Look for my article next month and I'll show you 
how to install a memory in the black computer. 

from page 19 

fi I os in alphabetical order, you're all cet. 

i would also suggest that you change the buffer 
size in the INS-ZEB file to >2100 to avoid a problem 
later. Also, keep an eye on the size of the l NS-ZEB 

filo as it qr-'w. . When the memory image file reaches 
33 sectors, its ''Imo to star+ a new one, 

Now tha* : have nessed up Sain'': approach to his 
column, please read and follow Iain's suggestions, not 
mine. I am only showing you what one person is doing 
with a program. !f ycu f eei /cur exoerti se in 
assembly language is up to i + , experiment all you 
van*. Otherwise, let lain show you the way. 

C-~e /ou ■-f-vt month.., 



3-Aside *rom the aforementioned incompatibility, 
there is nothing I've tried that doesn't work. 
Incidenta I !y, this article Is being written using my 

32K and Funiwr : ter. 



-Ti-Artist -OM-'iCOO 

-Advanced Diagnostics -XB Detective 

-SXB (verv fast ^cu~lne;;) -Super Rug 

■ ^rr-abblo -T ! i -dissembler 



Everyth ing seems to work f lawless I y and much 
quicker too. I don't understand what may be happening 
with Mechatronlcs' Basic. Oh well, ! haven't seen any 
programs using the routines anyway. 

Thanks to Malcolm's grac lousness, and the end of 
a busy summer,, ! am getting to work on the second 
version of the 16 bit 32K* This memory, by the way, 
was not meant to step on any toes as far as replacing 
o^isf'ng 32K car^e. goer;. -^ i hav; fou'-d ojt. it may 
have it's problem(s) . I developed this for two 
reasons. First of a I I , ! wanted 32K but could not 
even afford a boxcar memory at the time, a boat i ! m 
sure I'm not alone in. Secondly, I just wanted to see 
if I could do it. Having been successful, I wanted to 



DEBUG - ADDENDUM 
By Tor Hansen 

"V:- . - "**;: Tutor yrcjr.i.r - ".,-»o~? anc" 

iErady Gil; ^o*- the TEN command module appears fc have 
-ravelled a rocky read with this group. Every one who 
has obtained a copy from the library has had a problem 
getting it to run with a disk drive attached to their 
system* 

Rest easy* The problem has been identifier and 
?oi^ed. At fhe last Executive mee^inr.. « uorUp,^ ropy 
T ' e program was left with c?r\- "'"- ." '.-;*:" ; in ; 
Wayne Anderson. Contact either one at a Club meeting 
If you have a non-working version, and arrangements 
will be made to correct your copy. 

For those interested, it appears that five 
sectors of nonsense were written along with the 
program Fife when the transfer was made from cassette 
to disk. How this happened can only be guessed at. 
But those five sectors were enough to cause the MEMORY 
FULL IN XXX error that is displayed when the program 
is RUN. 

Just wanted to keep you updated. 'Till next 
month. . . 



THE BOOK AUCTION 



Tom Arnold 

These are the results of our book auction which, have beer sol -- - '-^ - „ 

closed on November 1 , 1986* The f Ina i bids r,ave bee^ occur revere you -eac **- ■ 3 a . " : - - - - - ■vitgcred 

reduced to $2.00 over the next highest bid. In the vou ai-eady please c^cre -e 2" /'. - : " ~ ~ - : 

case of a tie (and there were two) we drew tots to arrange for your books, ConcraTu 1 aTlo^s on +he 

decide who got the book. The few unsold books wiil winners, they received a suoer bsrea;-. 



LOT // 


BID 


BIDDER 


•'- 


01 


$5.00 


R;i chard Li \ 1 o t ~ 




02 


$4.50 


Malcolm Johnson 


L / 


03 


$4.75 


Bob Dudley 


1 « 


04 


$3. On 


; \ »)[j v J r.no.- 1 '•: 


^ ■ 1 


05 


$0.no 


p b ' ' 


_ 


06 


$0.'" , C 


;- ; n h i :' 




07 


$0.00 


no bid 


'•' / 


08 


$5.00 


Dave Well s 


23 


09 


$5.00 


Bob Dudley 


24 


10 


$4 . 00 


Andy Janosik 


25 


11 


$ 4 . .) 


Ma 1 'i 1 in J o h n s ^ r 


'"' ;' 


12 


$5.00 


Glenn Wa Is on 


*- t 


13 


$5.00 


Robert Dudley 


28 


14 


$0.00 


n b i. d 


P i-l 


15 


. $1.25 


below minimum bid 


30 



$4.00 


Harry ^r-r 


£/i , O n 


A ^ A V T ^ « ,1 r- 


$4 . '"'0 


A;V"' V 


5 5 , 00 


13..^-, '" , - 


$ 5 . ' : ' 


TV p "- . 


$1.25 


oelo* ^ i.!i: 


$0.00 


no bid 


$2.50 


Glen ivat^o 


S3. 00 


Harry Spar 


$ r ) .00 


■n , 1 


$ -> .00 


iv ,L C 1 i (n „'.. ■ i i- 1 ' 


50,00 


n b i d 


so. 00 


no 01 :< 


$0.00 


no bid 



muni 



Pa™ w<